
当我尝试使用iOS设备预加载文件时:
preload('testsound',cordova.file.dataDirectory + "audio/0/Hello.mp3"); 我收到的错误是:
ERROR: Unhandled Promise rejection: (NATIVE AUdio) Asset not found.
(file:///var/mobile/Containers/Data/Application/”[GUID]/library/NoCloud/audio/0/Hello.mp3) ; Zone: ; Task:
setTimeout ; Value: (NATIVE AUdio) Asset not found.
(file:///var/mobile/Containers/Data/Application/[GUID]/library/NoCloud/audio/0/Hello.mp3)
目标文件
目标文件(audio / 0 / Hello.mp3)从外部URL下载并存储在cordova.file.dataDirectory中.它已成功下载为以下控制台输出:
download complete: file:///var/mobile/Containers/Data/Application/[GUID]/library/NoCloud/audio/0/Hello.mp3
为了确保它确实存储在预期的位置,我检查了:
this.file.checkfile(cordova.file.dataDirectory,"audio/0/Hello.mp3")
控制台输出显示它已成功存储:
file:///var/mobile/Containers/Data/Application/[GUID]/library/NoCloud/audio/0/Hello.mp3 file does EXIST!
现在我尝试用本机音频预加载文件,我得到上面的错误(这个问题中的第一个错误).
问题似乎是存储文件的位置
我也尝试从本地applicationDirectory(/www/assets/audio/0/Hello.mp3)预加载,预加载工作正常.但是applicationDirectory是只读目录,因此我无法从外部URL下载音频并将其保存在那里.
本机音频应支持从url(不仅是本地applicationDirectory)预加载,因为它在Ionic api文档中声明.
我在模拟器和iOS设备上都遇到了同样的错误.
有没有人遇到同样的问题,并设法解决它?
谢谢你的帮助.
BR /
import { NativeAudio } from '@ionic-native/native-audio';...let ID = new Date().toISOString();this.nativeAudio.preloadComplex(ID,'assets/file.m4a',1,0).then(() => { this.nativeAudio.play(ID,() => { this.nativeAudio.unload(ID).then(() => { // Next step }); });}); 如果声音可以异步播放并且是用户录制的,那么对我来说唯一有用的就是Media Plugin.
import { Media,MediaObject } from '@ionic-native/media';...if (this.mediaObject) { this.mediaObject.release();} this.mediaObject = this.media.create('../library/NoCloud/Mediafiles/file.m4a');this.mediaObject.play();...ionVIEwDIDLeave() { if (this.mediaObject) { this.mediaObject.release(); }} 总结 以上是内存溢出为你收集整理的Ionic 2 / iOS – 本机音频在cordova.file.dataDirectory中找不到文件全部内容,希望文章能够帮你解决Ionic 2 / iOS – 本机音频在cordova.file.dataDirectory中找不到文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)