当前位置:  开发笔记 > 编程语言 > 正文

Ionic:媒体插件 - 无法让它运转起来

如何解决《Ionic:媒体插件-无法让它运转起来》经验,为你挑选了1个好方法。

这已经在旧版本中工作,ionic但现在我已经完成了对这个应用程序的其余部分的更新,并且回过头来确定声音将无法播放.

我有一个开关用于在应用程序中播放演示声音.这是代码,带有注释和注释掉的部分我认为可能会导致我的问题.事实并非如此.

.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脚本相同的文件夹中.

依然没有.

有帮助吗?



1> beaver..:

根据Ionic论坛上的这篇文章,你必须在Android设备上的媒体文件路径中添加'/ android_asset/www /' .

所以你的代码变成如下:

$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进行Media实例化时,类(函数)已经可用new media().在我之前创建SoundCtrl之前onDeviceReady(也就是当cordova.plugin.media变得可用时),所以我添加new Media(...)到了$scope.soundPlayer()函数中.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有