其他人也遇到过这个问题吗?
当我使用 cordova 媒体插件在 iOS 上播放 mp3 文件时,我没有收到关于它为什么不工作的错误或响应。
我已经让 ngCordova 媒体插件在我的 ios 模拟器上的应用程序中工作,使用外部 URL 来播放音频文件...但是,我正在尝试构建一些功能,基本上您可以从其中下载 mp3外部源,将其保存到您的设备,然后从那里播放文件。我似乎无法让它工作,即使我可以验证该文件确实存在。这是我的函数代码:
$scope.playAudio = function() {
document.addEventListener('deviceready', function () {
var src = cordova.file.dataDirectory + fileSrc;
var media = $cordovaMedia.newMedia(src);
var iOSPlayOptions = {
numberOfLoops: 1,
playAudioWhenScreenIsLocked : true
};
media.play(iOSPlayOptions); // iOS only!
media.play(); // Android
});
} 我应该注意到,这个功能在我的 Android 设备上确实有效,但在我的 ios 模拟器和真实设备上,它绝对没有任何作用。
我应该注意我使用的是 iOS 9 和 xCode 7.1
有没有其他人在尝试在他们的应用程序中播放本地设备上的音频或视频文件时遇到任何问题?
最佳答案
看来我能够通过使用 $window.resolveLocalFileSystemURL() 和 src.toInternalURL() 函数将本地文件路径解析为内部 URL 来解决问题
$scope.playAudio = function() {
document.addEventListener('deviceready', function () {
var src = cordova.file.dataDirectory + fileSrc;
$window.resolveLocalFileSystemURL(src, function(dir){
basePath = dir.toInternalURL();
media = $cordovaMedia.newMedia(basePath);
var iOSPlayOptions = {
numberOfLoops: 1,
playAudioWhenScreenIsLocked : true
};
$scope.data.playing = true;
media.play(iOSPlayOptions); // iOS only!
//media.play(); // Android
})
});
}
关于iOS 9 无法播放下载到设备的音频/视频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33837326/