【问题标题】:Ionic: Media plugin - can’t get it workingIonic:媒体插件 - 无法正常工作
【发布时间】:2015-12-30 10:29:05
【问题描述】:

这在旧版本的 ionic 中可以正常工作,但现在我已经完成了此应用程序的其余部分的更新,并返回最终确定声音不会播放。

我有一个用于在应用中播放演示声音的开关。这是代码,带有 cmets 和注释掉的部分,我认为可能会导致我的问题。不是。

.controller( 'SoundCtrl', function( $scope, $timeout ) {

    $scope.sound_on = false;
    var media       = new Media( '100bpm.wav' );

    $scope.soundPlayer = function() {
        console.log( "in soundPlayer" );
        if( $scope.sound_on == false ) {
            $scope.sound_on = true;
            media.setVolume( '1.0' );
            media.play();
            console.log( "sound on" );
            console.log( media );

            /*$timeout(function(){
             $scope.sound_on=false;
             console.log("should change");
             }, 12600);*/

        } else {
            media.stop();
            $scope.sound_on = false;
            console.log( "sound off" );
        }
    }
});

我得到了所有正确的控制台日志,并将 wav 文件与我的 js 脚本放在同一个文件夹中。

还是什么都没有。

有什么帮助吗?

【问题讨论】:

  • 100bpm.wav 在同一个位置吗?
  • 你好像在用这个插件? github.com/apache/cordova-plugin-media 控制台日志将触发,因为它们独立于任何依赖于插件的代码。我建议您在更新 ionic 后重新添加插件。

标签: cordova plugins ionic media cordova-plugins


【解决方案1】:

根据 Ionic 论坛上的 this post,您必须将“/android_asset/www/”添加到 Android 设备上的媒体文件路径。

所以你的代码如下:

$scope.media = new Media( '/android_asset/www/'+'100bpm.wav',
        function() {
            console.log("[mediaSuccess]");
        }, function(err) {
            console.log("[mediaError]", err);
        }, function(status) {
            console.log("[mediaStatus]", status);
        });

在我的试用中,我使用了控制器 $scope 的属性(媒体)来存储媒体对象,并且我还附加了 successHandler、errorHandler、statusHandler

注意:请注意,当您在 SoundCtrl 中使用 new media() 实例化 Media 类(函数)时,它已经可用。我碰巧在 onDeviceReady 之前创建 SoundCtrl(即当 cordova.plugin.media 可用时),所以我将 new Media(...) 添加到 $scope.soundPlayer() 函数。

【讨论】:

  • 还是不行。我不知道应该把实际文件放在哪里。
  • 即如果您将文件放在 /www/audio/ 下,则应使用 $scope.media = new Media( '/android_asset/www/audio/100bpm.wav',... 引用它
  • 现在它正在工作。为什么这不是文档中的前沿和中心,这超出了我的理解。不过谢谢。这已经花了很长时间!
  • 现在它不适用于 iOS。我已经取消了 /android_asset/ 位,应用程序的其余部分可以正常工作,但声音不行:(
  • 我从来没有在iOS上使用过这个插件...你试过$scope.media = new Media( '/audio/100bpm.wav',...吗?
猜你喜欢
  • 2016-12-13
  • 2014-02-25
  • 2016-01-22
  • 2014-07-15
  • 1970-01-01
相关资源
最近更新 更多