phonegap音频不要停止

时间:2012-09-26 20:40:16

标签: cordova audio-streaming

我正在使用Phonegap为网络电台制作播放器。

播放流效果很好,但我无法阻止流。 当我点击停止按钮时,我在日志中显示此消息:

  

AudioPlayer错误:在无效状态期间调用stopPlaying():4

屏幕上出现“未定义”错误。似乎我的变量my_media未定义。

这是我的代码:

var src="http://stream.muzeeli.fr/ange";

var my_media = null;

function playAudio(src) {
    if (my_media == null) {                             
        my_media = new Media(src, onSuccess, onError);
    } 
    my_media.play();
}


function stopAudio() {
    if (my_media) {
        my_media.stop();
    }
}

$(document).bind('pageinit',function(){
document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {  
        $('#play').click(function(event){
            playAudio(src);
        });

        $('#stop').click(function(event){
            stopAudio();
        });
    }
});

我添加了一个日志文件。似乎媒体的状态未得到很好的更新,并且状态始终为MEDIA_NONE。所以停止不能被召唤。

E/MediaPlayer(23457): mOnSeekCompleteListener is null. Failed to send MEDIA_SEEK_COMPLETE message.
V/MediaPlayer(23457): buffering 0
V/MediaPlayer(23457): callback application
V/MediaPlayer(23457): back from callback
V/MediaPlayer(23457): message received msg=200, ext1=703, ext2=193
W/MediaPlayer(23457): info/warning (703, 193)
V/MediaPlayer(23457): callback application
V/MediaPlayer(23457): message received msg=200, ext1=701, ext2=0
W/MediaPlayer(23457): info/warning (701, 0)
V/MediaPlayer(23457): callback application
V/MediaPlayer(23457): back from callback
E/MediaPlayer(23457): mOnBufferingUpdateListener is null. Failed to send    MEDIA_BUFFERING_UPDATE message.
I/MediaPlayer(23457): Info (703,193)
E/MediaPlayer(23457): mOnInfoListener is null. Failed to send MEDIA_INFO message.
I/MediaPlayer(23457): Info (701,0)
E/MediaPlayer(23457): mOnInfoListener is null. Failed to send MEDIA_INFO message.
V/MediaPlayer(23457): message received msg=100, ext1=1, ext2=-110
E/MediaPlayer(23457): error (1, -110)
V/MediaPlayer(23457): callback application
V/MediaPlayer(23457): back from callback
E/MediaPlayer(23457): Error (1,-110)
E/MediaPlayer(23457): mOnErrorListener is null. Failed to send MEDIA_ERROR message.
D/AudioPlayer(23457): on completion is calling stopped
D/CordovaLog(23457): playAudio():Audio Success
D/CordovaLog(23457): file:///android_asset/www/js/muzeeli.js: Line 40 : playAudio():Audio Success
I/Web Console(23457): playAudio():Audio Success at file:///android_asset/www/js/muzeeli.js:40

有没有人有想法?

最佳,

阿兰

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题

01-16 17:29:51.404:E / MediaPlayer(9903):mOnBufferingUpdateListener为null。无法发送MEDIA_BUFFERING_UPDATE消息。

我试试@ hyunkeln的代码,我可以解决它! 谢谢你@hyunkeln

重点是。在“停止”之后将代码“释放”。

my_media.stop(); my_media.release();

答案 1 :(得分:-1)

你需要在stop()之前调用release()并检查my_media是否仍然设置并播放;也许你想以这种方式做事:

if (my_media != null && my_media.isPlaying()){
    my_media.stop();
    my_media.release();
}