我在使用Media插件从本地存储播放下载的音频文件时遇到问题。
我正在使用FileTransfer插件将文件下载到 LocalFileSystem.TEMPORARY 目录。
在播放之前,我使用以下代码检查音频文件是否存在:
window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, function (fileSystem) {
var rootdir = fileSystem.root;
var dir_path = rootdir.toURL();
if (success_callback) {
if (file_name && file_name !== "") {
success_callback(dir_path + file_name);
} else {
success_callback(dir_path);
}
}
}, function () {
if (error_callback) {
error_callback("Error in FileSystem request");
}
});
上述方法验证该文件是否存在于临时存储目录中。
但是当我播放该文件时,我在iOS上的跟踪日志时出现错误:
> File Transfer Finished with response code 200
> Audio downloaded successfully. Location: file:///var/mobile/Containers/Data/Application/0B5359AD-0F9E-4FB1-BEB3-71713973A8A2/tmp/user_timestamp.wav
> Play local file from: file:///var/mobile/Containers/Data/Application/0B5359AD-0F9E-4FB1-BEB3-71713973A8A2/tmp/user_timestamp.wav
> Will attempt to use file resource from LocalFileSystem.TEMPORARY directory
> Failed to initialize AVAudioPlayer: The operation couldn’t be completed. (OSStatus error 2003334207.)
> playAudio() Error: {"message":"","code":4}
我尝试过向Media对象提供完整路径和文件名,但这两种方法都不起作用。任何帮助将不胜感激。
答案 0 :(得分:0)
以下链接帮助我将Android中的媒体插件文件 AudioPlayer.java 和iOS中的 CDVSound.m 设置为类似设置,现在每个平台的音频都在播放另一方面。