0

Phonegapを使用して、Webラジオ用のプレーヤーを作成しています。

ストリームの再生はうまくいきますが、ストリームを停止することはできません。停止ボタンをタップすると、ログに次のメッセージが表示されます。

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のステータスになっているようです。したがって、stopを呼び出すことはできません。

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

誰かアイデアがありますか?

一番、

アラン

4

2 に答える 2

0

私は同じ問題に直面しました

01-16 17:29:51.404: E/MediaPlayer(9903): mOnBufferingUpdateListener が null です。MEDIA_BUFFERING_UPDATE メッセージの送信に失敗しました。

@hyunkeln のコードを試してみると、解決できました!! ありがとう@ヒュンケルン

ポイントは 。'stop' の後にコード 'release' を追加します。

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

于 2013-01-16T08:32:31.793 に答える
-1

stop() の前に release() を呼び出し、my_media がまだ設定されていて再生中かどうかを確認する必要があります。多分あなたはこのように物事を作りたいです:

if (my_media != null && my_media.isPlaying()){
    my_media.stop();
    my_media.release();
}
于 2012-09-26T20:53:16.970 に答える