Zba*_*ian 3 android media-player prepare
正如标题所说,未调用onPrepared()重写方法.
mediaPlayer = new MediaPlayer();
mediaPlayer.setOnPreparedListener(new OnPreparedListener(){
@Override
public void onPrepared(MediaPlayer mp){
if (mp.equals(mediaPlayer)) isReady_mediaPlayer = true;
Log.e("I", "Media player has been loaded to memory !");
}
});
mediaPlayer = MediaPlayer.create(this, R.raw.my_sound_mp3);
Run Code Online (Sandbox Code Playgroud)
这是因为你正在创建一个新MediaPlayer对象.这个没有任何onPreparededListener设置.
在这里创建并分配一个MediaPlayer对象:
mediaPlayer = new MediaPlayer();
Run Code Online (Sandbox Code Playgroud)
接下来你设置一个onPreparedListener.
但是你创建并分配一个新的!此作业会覆盖您之前的行.
mediaPlayer = MediaPlayer.create(this, R.raw.my_sound_mp3);
Run Code Online (Sandbox Code Playgroud)
这个没有onPreparedListener设置.
要修复,请不要使用该create方法,请setDataSource改用
AssetFileDescriptor afd = context.getResources().openRawResourceFd(R.raw.my_sound_mp3);
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setOnPreparedListener(new OnPreparedListener(){
@Override
public void onPrepared(MediaPlayer mp){
if (mp.equals(mediaPlayer)) isReady_mediaPlayer = true;
Log.e("I", "Media player has been loaded to memory !");
}
});
mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
afd.close();
mediaPlayer.prepare();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8742 次 |
| 最近记录: |