设置使用MediaPlayer的歌曲数组 [英] Setting an array of songs using MediaPlayer
本文介绍了设置使用MediaPlayer的歌曲数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有5首歌曲,我需要后,其他玩的,它必须循环从第一首完成5首歌。 我如何使用的MediaPlayer来实现这一目标?
解决方案
公共类MediaPlayerExample扩展活动实现MediaPlayer.OnCompletionListener {
INT []歌曲;
MediaPlayer的媒体播放器;
INT current_index = 0;
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main);
歌曲=新INT [] {R.raw.song1,R.raw.song2,R.raw.song3,R.raw.song4};
媒体播放器= MediaPlayer.create(这一点,歌曲[0]);
mediaPlayer.setOnCompletionListener(本);
mediaPlayer.start();
}
@覆盖
公共无效onCompletion(MediaPlayer的MP){
玩();
}
私人无效播放()
{
current_index =(current_index +1)%4;
AssetFileDescriptor AFD = this.getResources()openRawResourceFd(听歌[current_index])。
尝试
{
mediaPlayer.reset();
mediaPlayer.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getDeclaredLength());
媒体播放器prepare()。
mediaPlayer.start();
afd.close();
}
赶上(抛出:IllegalArgumentException E)
{
Log.e(TAG,无法播放音频队列中做的异常:+ e.getMessage(),E);
}
赶上(IllegalStateException异常E)
{
Log.e(TAG,无法播放音频队列中做的异常:+ e.getMessage(),E);
}
赶上(IOException异常E)
{
Log.e(TAG,无法播放音频队列中做的异常:+ e.getMessage(),E);
}
}
}
I have 5 songs which i need to play one after the other, and it must loop from the first song after finishing the 5th song. How do I use the MediaPlayer to achieve this?
解决方案
public class MediaPlayerExample extends Activity implements MediaPlayer.OnCompletionListener {
int [] songs;
MediaPlayer mediaPlayer;
int current_index = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
songs= new int[] {R.raw.song1,R.raw.song2,R.raw.song3,R.raw.song4};
mediaPlayer = MediaPlayer.create(this, songs[0]);
mediaPlayer.setOnCompletionListener(this);
mediaPlayer.start();
}
@Override
public void onCompletion(MediaPlayer mp) {
play();
}
private void play()
{
current_index = (current_index +1)% 4;
AssetFileDescriptor afd = this.getResources().openRawResourceFd(songs[current_index]);
try
{
mediaPlayer.reset();
mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
mediaPlayer.prepare();
mediaPlayer.start();
afd.close();
}
catch (IllegalArgumentException e)
{
Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e);
}
catch (IllegalStateException e)
{
Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e);
}
catch (IOException e)
{
Log.e(TAG, "Unable to play audio queue do to exception: " + e.getMessage(), e);
}
}
}
这篇关于设置使用MediaPlayer的歌曲数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文