КОГДА СТАРТ / ПАУЗА:
if(sound.isPlaying()){
sound.pause();
}else{
sound.start();
}
КОГДА СТАРТ / ОСТАНОВКА:
if(sound.isPlaying()) {
sound.stop();
} else {
sound.reset();
sound.setDataSource(yourURL); //or InputStream etc.
sound.prepare();
sound.start();
}
Также вы можете использовать sound.seekTo(time)
для перехода к позиции.Помните, что если вы хотите воспроизвести новый звук (или перезапустить), сначала вы должны reset
, setDataSource
, prepare
, а затем start
it.
EDIT: получить FileDescripter
AssetManager assetManager=Context.getAssets();
AssetFileDescriptor fileDescriptor = assetManager.openFd("a2.mp3");
mediaPlayer.setDataSource(fileDescriptor.getFileDescriptor());
РЕДАКТИРОВАТЬ: я не нашел способ превратить необработанный файл в файловый дескриптор, поэтому я использую статический метод MediaPlayer
MediaPlayer mediaPlayer = MediaPlayer.create(Activity.this,R.raw.a1);
mediaPlayer.setOnCompletionListener(new musicCompletionListener());
mediaPlayer.start();
private class musicCompletionListener implements OnCompletionListener {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
mediaPlayer.release();
}
}
или отпустите медиаплеер при остановке.