簡體   English   中英

cordova媒體插件狀態不起作用

[英]cordova media plugin status is not working

我想知道何時仍在播放音頻,以及何時停止執行其他操作。 這些選項都不適合我。 我嘗試重現相同的文件,但只有停止了,我嘗試了幾天,但仍然無法正常工作

function reproducirAudio(ruta) {
        var ruta = "/android_asset/www/sounds/button-1.mp3";
        $scope.media2 = new Media(ruta, function () {
            $scope.media2.play();

        }, function (b) {
        }, function (a) {
            alert(JSON.stringify(a));
        });

    }

function reproducirAudio(ruta) {
        var ruta = "/android_asset/www/sounds/button-1.mp3";
        $scope.media2 = new Media(ruta, bien,mal,status);
          function bien(){  $scope.media2.play();}
          function mal(){}
          function status(estatus){  console.log("status")}
}

function reproducirAudio(ruta) {
        var ruta = "/android_asset/www/sounds/button-1.mp3";
        $scope.media2 = new Media(ruta, bien,mal,status);
          function bien(){  $scope.media2.play();}
          function mal(){}
          function status(estatus){  alert(status)}
}

function reproducirAudio(ruta) {
        var ruta = "/android_asset/www/sounds/button-1.mp3";
        $scope.media2 = new Media(ruta, bien,mal,getStatusMessage);
          function bien(){  $scope.media2.play();}
          function mal(){}


     function getStatusMessage(status){

     if(status === 0){console.log('Media.MEDIA_NONE');}
         else if(status === 1){console.log('Media.MEDIA_STARTING');}
         else if(status === 2){console.log('Media.MEDIA_RUNNING');}
         else if(status === 3){console.log('Media.MEDIA_PAUSED');}
         else if(status === 4){console.log('Media.MEDIA_STOPPED');}
    }
}

為此,我創建了一個空白媒體播放器,然后再設置媒體。 要測試它是否正在播放,只需執行一項檢查,以測試您的媒體播放器是否為null或未定義。

$scope.media;
$scope.media = new Media("some/media/path.mp3);

if ($scope.media != null) {
    someAction();
}
else {
    otherAction();
}

另一種選擇是測試介質長度是否大於0。

$scope.media.getCurrentPosition(
    //success
    function (position) {
        if (position > 0) {
            console.log("A song is playing!");
        }
    },
    // error
    function () {
        console.log("An error occured!");
    }
);

終於成功了。 我放了這段代碼,我意識到降級到cordova-media-plugin到1.0.1版本

function reproducirAudioPorBoton(ruta) {
            var audiofile = new Media('file:///android_asset/www/sounds/M.mp3');
            audiofile.play();
            var counter=0;
            var timerDur = setInterval(function() {
                counter = counter + 100;
                if (counter > 2000) {
                    clearInterval(timerDur);
                }
                var dur = audiofile.getDuration();
                if (dur > 0) {
                    clearInterval(timerDur);
                    console.log(dur + " sec");
                }
            }, 100);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM