We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Seems there is bug on android 14
public async playRecord( attachment = undefined, attachmentId = undefined, args, repeat: boolean = false ) { console.log("attachment.filepath: " + attachment.filepath); let recordedFile: File = null; console.log("1........................... "+ attachment.filepath); //Pause current playing file if another file is tapped and reset variables if (attachmentId !== this.currentPlayingAttachmentId && attachmentId !== this.currentPausedAttachmentId) { console.log("2........................... "+ attachment.filepath); try { if (this._player.isAudioPlaying()) { console.log("3........................... "+ attachment.filepath); await this.pauseRecord(this.currentPlayingAttachmentId); } } catch (error) { console.log("there was an error pausing the record"); } //reset for new file this.isPlaying = false; this.isPaused = false; this.tapped = false; timer.clearInterval(this.timerId); this.progressInMilliseconds = 0; this.progressInSeconds = 0; this.currentPlaytimeInMilliseconds = 0; this.currentPlaytimeInSeconds = 0; this.currentPausedAttachmentId = null; this.currentPlayingAttachmentId = null; this.remainingDuration = 0; this.changeDetectionRef.detectChanges(); this._player.dispose().then(() => console.log("player disposed")); } if (attachment.filepath && File.exists(attachment.filepath)) { console.log("4........................... "+ attachment.filepath); recordedFile = File.fromPath(attachment.filepath); } if ( !recordedFile || !attachment.filepath || !File.exists(attachment.filepath) ) { try { console.log("file not foumnd, try download"); var downloadparent = args.object.parent; var downloadActivityIndicator = this.downloadActivityIndicator ? this.downloadActivityIndicator.nativeElement : downloadparent.getViewById("DownloadActivityIndicator"); if (downloadActivityIndicator) { downloadActivityIndicator.busy = true; downloadActivityIndicator.visibility = "visible"; } this.changeDetectionRef.detectChanges(); await this.checkPermissions().then((granted) => { if (granted) { if (isAndroid) { return this.attachmentsService .downloadAttachment(attachment, this.chat.name) .then((fileExist) => { if (fileExist === "false" || fileExist == null) { return Promise.reject("file not found"); } else { recordedFile = File.fromPath(attachment.filepath); if (downloadActivityIndicator) { downloadActivityIndicator.busy = false; downloadActivityIndicator.visibility = "collapsed"; } this.changeDetectionRef.detectChanges(); return Promise.resolve(); } }); } else { return this.attachmentsService .iosAttachment(attachment, this.chat.name) .then((fileExist) => { if (fileExist == "false" || fileExist == null) { return Promise.reject("file not found"); } else { recordedFile = File.fromPath(attachment.filepath); if (downloadActivityIndicator) { downloadActivityIndicator.busy = false; downloadActivityIndicator.visibility = "collapsed"; } this.changeDetectionRef.detectChanges(); return Promise.resolve(); } }); } } }); if (!File.exists(recordedFile.path)) { console.log("download failed"); return; } } catch { console.log("could not dl file"); return; } } if (recordedFile === null) { console.log("no audio file found"); return; } if (this.isPaused && !repeat) { console.log("5........................... "+ attachment.filepath); this.isPaused = false; this.isPlaying = true; this.currentPausedAttachmentId = null; this.currentPlayingAttachmentId = attachmentId; this.changeDetectionRef.detectChanges(); this.tapped = false; this._player.resume(); if (!this._player.isAudioPlaying()) { this.isPaused = false; this.isPlaying = false; this.currentPlaytimeInMilliseconds = 0; this.currentPlaytimeInSeconds = 0; timer.clearInterval(this.timerId); this.changeDetectionRef.detectChanges(); return; } return; } console.log("RECORDED FILE : " + JSON.stringify(recordedFile)); const playerOptions: AudioPlayerOptions = { audioFile: recordedFile.path, loop: false, completeCallback: () => { console.log("6........................... "+ attachment.filepath); console.log("Audio file complete."); this.isPlaying = false; this.isPaused = false; this.tapped = false; timer.clearInterval(this.timerId); this.progressInMilliseconds = 0; this.progressInSeconds = 0; this.changeDetectionRef.detectChanges(); this.currentPausedAttachmentId = null; this.currentPlayingAttachmentId = null; this.remainingDuration = 0; this.changeDetectionRef.detectChanges(); if (!playerOptions.loop) { this._player.dispose().then(() => console.log("player disposed")); } }, errorCallback: (errorObject) => { console.log("7........................... "+ attachment.filepath); console.log(JSON.stringify(errorObject)); this.isPlaying = false; this.tapped = false; this.isPaused = false; this.currentPausedAttachmentId = null; this.currentPlayingAttachmentId = null; this.remainingDuration = 0; this.progressInMilliseconds = 0; this.progressInSeconds = 0; if (!this.isDisposed) { this.changeDetectionRef.detectChanges(); } }, infoCallback: (infoObject) => { console.log("8........................... "+ attachment.filepath); console.log(JSON.stringify(infoObject)); }, }; this._player.playFromFile(playerOptions).then( (played) => { console.log("9........................... "+ JSON.stringify(playerOptions)); console.log("file played", played); this.isPlaying = true; this.isPaused = false; this.currentPausedAttachmentId = null; this.currentPlayingAttachmentId = attachmentId; this.changeDetectionRef.detectChanges(); this._player.getAudioTrackDuration().then((duration) => { this.audioTrackDurationInSeconds = platform.isAndroid ? this.roundMillisecondsToNearestSecond(+duration) : +duration; this.audioTrackDurationInMilliseconds = platform.isAndroid ? +duration : +duration * 1000; // start audio duration tracking this.startDurationTracking( this.audioTrackDurationInSeconds, this.audioTrackDurationInMilliseconds ); }); }, (err) => { console.log("error playFromFile"); this.isPlaying = false; this.isPaused = false; this.currentPausedAttachmentId = null; this.currentPlayingAttachmentId = null; } ); } Unhandled Promise rejection: Could not request audio focus ; Zone: <root> ; Task: null ; Value: Error: Could not request audio focus Error: Could not request audio focus at file: app/webpack:/TestApp/node_modules/nativescript-audio/android/player.js:260:0 at new ZoneAwarePromise (file: app/webpack:/TestApp/node_modules/zone.js/fesm2015/zone.js:1429:0) at TNSPlayer.play (file: app/webpack:/TestApp/node_modules/nativescript-audio/android/player.js:250:0) at Object.onPrepared (file: app/webpack:/TestApp/node_modules/nativescript-audio/android/player.js:211:0)
package.json `{
"description": "NativeScript Application", "version": "1.1.21", "license": "MIT", "name": "TestApp", "readme": "NativeScript Application", "repository": "", "dependencies": { "@angular/animations": "~15.1.0", "@angular/common": "~15.1.0", "@angular/compiler": "~15.1.0", "@angular/core": "~15.1.0", "@angular/forms": "~15.1.0", "@angular/platform-browser": "~15.1.0", "@angular/platform-browser-dynamic": "~15.1.0", "@angular/router": "~15.1.0", "@finalsite/rich-text-editor": "^0.1.1", "@nativescript-community/ui-barcodeview": "^3.6.1", "@nativescript-community/ui-document-picker": "^1.1.12", "@nativescript-community/ui-material-bottomnavigationbar": "^7.2.44", "@nativescript-community/ui-pulltorefresh": "^2.5.3", "@nativescript-use/nativescript-orientation": "^0.0.3", "@nativescript/angular": "^15.0.1", "@nativescript/appversion": "^2.0.0", "@nativescript/background-http": "^6.0.1", "@nativescript/biometrics": "^1.3.1", "@nativescript/camera": "~5.0.15", "@nativescript/core": "~8.6.2", "@nativescript/datetimepicker": "^2.1.13", "@nativescript/firebase": "11.1.3", "@nativescript/firebase-core": "^3.2.0", "@nativescript/firebase-messaging": "^3.2.0", "@nativescript/imagepicker": "^3.0.0", "@nativescript/iqkeyboardmanager": "^2.1.1", "@nativescript/local-notifications": "^6.1.1", "@nativescript/secure-storage": "^3.0.3", "@nativescript/theme": "^2.5.0", "@ngx-translate/core": "^14.0.0", "@ngx-translate/http-loader": "^7.0.0", "@nota/nativescript-webview-ext": "^8.0.2", "@nstudio/nativescript-cardview": "^2.0.2", "@nstudio/nativescript-carousel": "^8.0.3", "@nstudio/nativescript-checkbox": "^2.0.5", "@nstudio/nativescript-floatingactionbutton": "^3.0.4", "@nstudio/nativescript-pulltorefresh": "^3.0.2", "@nstudio/nativescript-snackbar": "^2.1.0", "@triniwiz/nativescript-image-cache-it": "7.4.0", "autolinker": "^4.0.0", "bootstrap": "^4.5.2", "email-validator": "^2.0.4", "enhanced-resolve": "^4.1.1", "jwt-decode": "^2.2.0", "moment": "^2.30.1", "nativescript": "^8.6.5", "nativescript-audio": "~6.2.6", "nativescript-drop-down": "~6.0.2", "nativescript-imagecropper": "~4.0.3", "nativescript-livesync": "^1.4.1", "nativescript-mediafilepicker": "~4.0.2", "nativescript-modal-datetimepicker": "~2.1.5", "nativescript-oauth2": "~3.0.10", "nativescript-permissions": "~1.3.12", "nativescript-phone": "^3.0.3", "nativescript-screen-orientation": "~2.0.0", "nativescript-sqlite": "~2.8.6", "nativescript-themes": "^2.0.2", "nativescript-ui-listview": "~15.2.3", "nativescript-webview-utils": "~4.0.0", "ngx-linky": "~4.0.0", "qs": "npm:querystring@^0.2.1", "rxjs": "~7.5.0", "util": "^0.12.5", "zone.js": "^0.11.6" }, "devDependencies": { "@angular-devkit/build-angular": "~15.1.0", "@angular/compiler-cli": "~15.1.0", "@nativescript/android": "8.6.2", "@nativescript/ios": "8.6.3", "@nativescript/types": "~8.4.0", "@nativescript/webpack": "~5.0.18", "@ngtools/webpack": "~15.1.0", "sass": "^1.34.1", "typescript": "~4.9.4" }, "scripts": { "ns-bundle": "ns-bundle" }, "main": "app/main.ts", "hooks": [] } `
The text was updated successfully, but these errors were encountered:
did you solve it?
Sorry, something went wrong.
No branches or pull requests
Seems there is bug on android 14
"description": "NativeScript Application",
"version": "1.1.21",
"license": "MIT",
"name": "TestApp",
"readme": "NativeScript Application",
"repository": "",
"dependencies": {
"@angular/animations": "~15.1.0",
"@angular/common": "~15.1.0",
"@angular/compiler": "~15.1.0",
"@angular/core": "~15.1.0",
"@angular/forms": "~15.1.0",
"@angular/platform-browser": "~15.1.0",
"@angular/platform-browser-dynamic": "~15.1.0",
"@angular/router": "~15.1.0",
"@finalsite/rich-text-editor": "^0.1.1",
"@nativescript-community/ui-barcodeview": "^3.6.1",
"@nativescript-community/ui-document-picker": "^1.1.12",
"@nativescript-community/ui-material-bottomnavigationbar": "^7.2.44",
"@nativescript-community/ui-pulltorefresh": "^2.5.3",
"@nativescript-use/nativescript-orientation": "^0.0.3",
"@nativescript/angular": "^15.0.1",
"@nativescript/appversion": "^2.0.0",
"@nativescript/background-http": "^6.0.1",
"@nativescript/biometrics": "^1.3.1",
"@nativescript/camera": "~5.0.15",
"@nativescript/core": "~8.6.2",
"@nativescript/datetimepicker": "^2.1.13",
"@nativescript/firebase": "11.1.3",
"@nativescript/firebase-core": "^3.2.0",
"@nativescript/firebase-messaging": "^3.2.0",
"@nativescript/imagepicker": "^3.0.0",
"@nativescript/iqkeyboardmanager": "^2.1.1",
"@nativescript/local-notifications": "^6.1.1",
"@nativescript/secure-storage": "^3.0.3",
"@nativescript/theme": "^2.5.0",
"@ngx-translate/core": "^14.0.0",
"@ngx-translate/http-loader": "^7.0.0",
"@nota/nativescript-webview-ext": "^8.0.2",
"@nstudio/nativescript-cardview": "^2.0.2",
"@nstudio/nativescript-carousel": "^8.0.3",
"@nstudio/nativescript-checkbox": "^2.0.5",
"@nstudio/nativescript-floatingactionbutton": "^3.0.4",
"@nstudio/nativescript-pulltorefresh": "^3.0.2",
"@nstudio/nativescript-snackbar": "^2.1.0",
"@triniwiz/nativescript-image-cache-it": "7.4.0",
"autolinker": "^4.0.0",
"bootstrap": "^4.5.2",
"email-validator": "^2.0.4",
"enhanced-resolve": "^4.1.1",
"jwt-decode": "^2.2.0",
"moment": "^2.30.1",
"nativescript": "^8.6.5",
"nativescript-audio": "~6.2.6",
"nativescript-drop-down": "~6.0.2",
"nativescript-imagecropper": "~4.0.3",
"nativescript-livesync": "^1.4.1",
"nativescript-mediafilepicker": "~4.0.2",
"nativescript-modal-datetimepicker": "~2.1.5",
"nativescript-oauth2": "~3.0.10",
"nativescript-permissions": "~1.3.12",
"nativescript-phone": "^3.0.3",
"nativescript-screen-orientation": "~2.0.0",
"nativescript-sqlite": "~2.8.6",
"nativescript-themes": "^2.0.2",
"nativescript-ui-listview": "~15.2.3",
"nativescript-webview-utils": "~4.0.0",
"ngx-linky": "~4.0.0",
"qs": "npm:querystring@^0.2.1",
"rxjs": "~7.5.0",
"util": "^0.12.5",
"zone.js": "^0.11.6"
},
"devDependencies": {
"@angular-devkit/build-angular": "~15.1.0",
"@angular/compiler-cli": "~15.1.0",
"@nativescript/android": "8.6.2",
"@nativescript/ios": "8.6.3",
"@nativescript/types": "~8.4.0",
"@nativescript/webpack": "~5.0.18",
"@ngtools/webpack": "~15.1.0",
"sass": "^1.34.1",
"typescript": "~4.9.4"
},
"scripts": {
"ns-bundle": "ns-bundle"
},
"main": "app/main.ts",
"hooks": []
}
`
The text was updated successfully, but these errors were encountered: