mp3音频播放不能在iOS上使用Cordova 3.5

前端之家收集整理的这篇文章主要介绍了mp3音频播放不能在iOS上使用Cordova 3.5前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
最近我将我们的iOS项目从Cordova 3.3升级到3.5.

mp3文件(以前下载到iOS标准文档文件夹)不能使用媒体API /插件播放.该代码已经在iOS上可靠地运行在许多版本上,包括Cordova 3.3 … mp3文件已被下载到标准的iOS App’文档’文件夹中名为“Downloads”的子目录中.

在XCode控制台中,我收到以下错误

未知的资源文件:// localhost / Users / weeasle / Library / Application Support / iPhone Simulator / 6.1 / Applications / {App-ID} /Documents/Downloads/testsound.mp3′

在我的代码(在File Plugin API的几个代码块之后),我得到目录:downloadDirFullPath = window.appRootDir.toURL();

为了符合3.5的文件API中的新变化,我最近更改了
downloadDirFullPath = window.appRootDir.fullPath;

来自iOS App Documents目录的音频播放的Cordova 3.5的Media Plugin API是否已损坏?

或者我只是真的很累,缺少一些明显的东西…任何建议或信息非常感谢.

克里斯
又名荒诞

UPDATE ON 20 / Jun / 14:Fix Found.我现在可以让我下载的.mp3播放在iOS Cordova 3.5 …显然与新的Cordova 3.5文件系统entry.fullPath方法不再工作,并被entry.toURL()替换为https://github.com/apache/cordova-plugin-file/blob/master/doc/index.md

当使用Cordova调用图像时,这可以正常工作.但是,iOS上的媒体插件已经有一段时间了:对于声音播放,它不接受以file://开头的URL,它只采用绝对路径,如/ var /移动/应用/ {GUID} /文档/

答案和修复是使用从fileSystem.root.getDirectory返回的条目中调用的新的toInternalURL()方法.我使用的确切的调用是downloadDirFullPath = window.appRootDir.toInternalURL(); (从fileSystem.root.getDirectory传递的条目中调用).

这将返回:cdvfile:// localhost / persistent / Downloads /哪个在iOS之前成功播放.mp3或其他音频文件

这也适用于显示图像和媒体,因此它是Cordova iOS 3.5及更高版本的单一可靠解决方案.

这是迄今为止首选的解决方案,因为它比使用相对路径更安全(如果将来Apple在iOS版本中进行重大的文件结构更改,文件访问可能会中断)…

另外一个注意事项 – 除了上面的调用/方法,downloadDirName = window.appRootDir.name;还设置cdvfile:// localhost / persistent / base路径

Weeasle

解决方法

最近我还没有在iOS上播放媒体,但是如果我看到它说的文档:
var myMedia = new Media("audio/beer.mp3")
myMedia.play()  
// first looks for file in www/audio/beer.mp3 then in 
<application>/documents/tmp/audio/beer.mp3

所以,如果我是你,我会尝试一个相对的路径:

"../Downloads/testsound.mp3"

应该改变:

<application>/documents/tmp/../Downloads/testsound.mp3

进入:

<application>/documents/Downloads/testsound.mp3

猜你在找的iOS相关文章