2016-08-11 61 views
0

我想知道音頻何時播放以及何時停止以執行其他操作。這些選項都不適用於我。我嘗試了重現相同的文件,但前提是停止,我嘗試了幾天,但它仍然不是通過創建一個空白的媒體播放器,然後再設置媒體工作cordova媒體插件狀態不起作用

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');} 
    } 
} 

回答

0

我已經做到了這一點。要測試它是否正在播放,只需執行檢查,測試媒體播放器是否爲空或未定義。

$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!"); 
    } 
); 
+0

我會嘗試此代碼。謝謝 –

0

終於它的工作。我把這個代碼,我知道降級到科爾多瓦媒體插件到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); 
     }