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

时间:2015-11-20 22:47:23

标签: ios ionic ngcordova

还有其他人有这个问题吗?

当我使用cordova媒体插件在iOS上播放mp3文件时,我没有得到任何错误或响应,说明它无法正常工作。

我已经在我的ios仿真器上的应用程序中使用ngCordova媒体插件,使用外部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

是否有其他人在尝试从他们的应用中的本地设备播放音频或视频文件时遇到任何问题?

1 个答案:

答案 0 :(得分: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
      })
    });
}