iOS 9 无法播放下载到设备的音频/视频文件

标签 ios ionic-framework ngcordova

其他人也遇到过这个问题吗?

当我使用 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/

相关文章:

ios - iOS 6 中更大的 Cordova 导航栏

javascript - Angular JS $http 配置问题与 Access-Control-Allow-Origin 中的凭证和通配符

android - 应用程序打开时停止推送通知振动

ios - Xcode 6上的Swift编译器错误

ios - 如何卡住 View 直到某个值为真?

ios - 强制 UITableView 缓存可重用单元格

ios - Ionic 和 ngCordova FileOpener2 插件问题

iphone - Facebook API BUG?

javascript - ionic : ERESOLVE could not resolve: Found: rxjs@7. x.x

ios - 在 Ionic 中使用 ngCordova $cordovaSQLite 插件时出错