2016-08-11 4 views
0

Я хочу знать, когда звук все еще воспроизводится, и когда он перестает выполнять другие действия. Ни один из этих вариантов не работает для меня. Я попробовал для воспроизвести тот же файл, но только если остановлен, я стараюсь в течение нескольких дней, но до сих пор не работаетСостояние плагина Media Media 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

Я сделал это путем создания пустой медиа-плеер, а потом настройки носителя. Чтобы проверить, воспроизводится ли он, просто выполните проверку, проверяющую, имеет ли ваш медиаплеер значение null или undefined.

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