Androidアプリ開発は初めてで、初めてのアプリです。私は音楽プレーヤーを構築しています。次の方法があります
public void playSong(int songIndex){
// Play song
mContext = getApplicationContext();
AudioManager am = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
OnAudioFocusChangeListener afChangeListener = new OnAudioFocusChangeListener() {
public void onAudioFocusChange(int focusChange) {
if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT){
mp.pause();
} else if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {
mp.start();
} else if (focusChange == AudioManager.AUDIOFOCUS_LOSS) {
mp.stop();
}
}
};
// Request audio focus for playback
int result = am.requestAudioFocus(afChangeListener,
// Use the music stream.
AudioManager.STREAM_MUSIC,
// Request permanent focus.
AudioManager.AUDIOFOCUS_GAIN);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
// Start playback.
try {
mp.reset();
mp.setDataSource(songsList.get(songIndex).get("songPath"));
mp.prepare();
mp.start();
String songTitle = songsList.get(songIndex).get("songTitle");
songTitleLabel.setText(songTitle);
// Changing Button Image to pause image
btnPlay.setImageResource(R.drawable.btn_pause);
// set Progress bar values
songProgressBar.setProgress(0);
songProgressBar.setMax(100);
// Updating progress bar
updateProgressBar();
}
catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
曲が完了すると、次の曲の再生が開始されるはずですが、開始されません。次に、デフォルトのメディアプレーヤーに切り替えて再生し、アプリに戻ると、アプリが再生されます。オーディオフォーカスと関係があると思います。既にフォーカスがあるかどうかを判断する方法、または完了時にフォーカスを解放する方法。ありがとう!!