我有2首歌曲。我为这两首歌都使用了单选按钮,所以当选择第一首时,它应该播放第一首歌,当我点击第二首歌时。应该播放第二首歌。我使用了播放,暂停和停止按钮,所以当我选择第一首歌并点击播放时,应该播放第一首歌。如何使用媒体播放器播放2首歌曲。以前我使用了2个媒体播放器播放不同的歌曲。如何使用一个媒体播放器 以前我用这两个歌曲的语句
mediaPlayer = MediaPlayer.create(getApplicationContext(),R.drawable.inno);
mediaPlayer1 = MediaPlayer.create(getApplicationContext(),R.drawable.rocky);
我的问题是我想只为这两首歌使用一个媒体播放器
答案 0 :(得分:1)
你最好不要懒惰,并自己寻找解决方案。 @ 1Up几乎回答了你的问题。关于第二个问题:This is Uri
答案 1 :(得分:0)
继续使用两个媒体播放器,在这种情况下,这样做是没有问题的。仅使用一个引用意味着每次要更改剪辑或停止它并调用setDataSource(context,URI)时都必须重新创建它。
如果您只使用一个对媒体播放器的引用,则每次必须播放时,用户必须等待剪辑准备就绪,而在您的实现中,两个声音剪辑都可以随时播放。
无论如何,这是一个setDataSource示例:
MediaPlayer mp = MediaPlayer.create(context, firstSongUriOrRes);
public void play(int clip)
{
if(mp.isPlaying()) //Stop the mediaplayer if it's already playing
mp.stop();
switch(clip) //Choose the clip to be played
{
case 0:
mp.setDataSource(context, firstSongUriOrRes);
break;
case 1:
mp.setDataSource(context, secondSongUriOrRes);
break;
}
mp.prepare();
mp.start(); //Start the mediaplayer
}
使用setDataSource的另一种方法是将音频文件放在资产目录中并使用以下代码:
AssetFileDescriptor fd = context.getAssets().openFd("pathInsideAssets/fileName");
mp.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(), fd.getDeclaredLength());