Ionic 2iOS – 本机音频在cordova.file.dataDirectory中找不到文件

Ionic 2iOS – 本机音频在cordova.file.dataDirectory中找不到文件,第1张

概述我正在使用cordova-plugin-nativeaudio在应用程序中播放音频. 当我尝试使用iOS设备预加载文件时: preload('testsound', cordova.file.dataDirectory + "audio/0/Hello.mp3"); 我收到的错误是: ERROR: Unhandled Promise rejection: (NATIVE AUDIO) Asset 我正在使用cordova-plugin-nativeaudio在应用程序中播放音频.
当我尝试使用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 /

解决方法 在iOS中,如果您需要在序列或转换过程中同步播放声音,那么对我来说唯一有用的是Native Audio preloadComplex和my / asset中的文件.

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中找不到文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1063015.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存