私は現在、ユーザーが終了するまでURLをストリーミングする単純なオーディオプレーヤーを作成しようとしています。本当に素晴らしいことは何もありませんが、私はMediaPlayerのonInfoメソッドを使ってメタデータの更新フラグを待っています。メディアプレーヤーオブジェクトを作成するための次のコードがあります。OnInfoListenerは決して起動しません。 Ever
/**
* Creates a new media player and attempts to prepare it.
*/
private void createPlayer(){
Log.v(TAG, "Now in createPlayer()");
if(mPlayer==null){
Log.i(TAG, "No existing media player found, creating.");
mPlayer=new MediaPlayer();
mPlayer.setOnErrorListener(this);
mPlayer.setOnInfoListener(new OnInfoListener() {
public boolean onInfo(MediaPlayer mp, int what, int extra) {
Log.w(TAG,"---Got some info!---");
return false;
}
});
mPlayer.setOnPreparedListener(this);
mPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
} else {
Log.i(TAG, "Found an existing media player. Doing nothing.");
}
try{
mPlayer.setDataSource(mStreamUri);
mPlayer.prepareAsync();
Log.i(TAG, "Just sent the media player a prepareAsync()");
}catch(Exception e){
Log.e(TAG,"Caught exception while trying to set up media player.");
}
}
私はのonError火を見て、まだ持っているが、私はまた、実際に正常に動作しますonPrepareので、私のアプリを簡単にするが、もちろんのすべてのエラーを取得するには至っていません。私は、上記のコードのようなインラインメソッドと同様、クラスで実装しようとしましたが、何も起こりません。
私はそれが本当だったらいいなあ。私はドキュメントが何かを言うことを知っているが、これはAndroidです。ソースコードを見てください: 'if(mOnInfoListener!= null){ mOnInfoListener.onInfo(mMediaPlayer、msg.arg1、msg.arg2); } '。あなたが返すものは気にしません。それをチェックしたり、どこにでも保管したりすることはありません。 – ajacian81