gpt4 book ai didi

android - 媒体播放器同时播放多个文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:37:51 26 4
gpt4 key购买 nike

我遇到了一个问题,一旦用户点击一个声音从我的 ListView 播放,然后在播放该声音时他们点击另一个声音,他们点击的 2 个声音同时播放。

我想让当前正在播放的声音结束,然后开始他们最近点击的新声音。

如果有人能帮助我,那将不胜感激!

代码:

ListView BoardList = (ListView) findViewById(R.id.BoardList);

String List[] = {

"Audio1", "Audio2", "Audio3", "Audio4", "Audio5"
, "Audio6", "Audio7", "Audio8", "Audio9"
, "Audio10", "Audio11", "Audio12" };

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.listcustomize, R.id.textItem, List);

BoardList.setAdapter(adapter);

BoardList.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
MediaPlayer mPlayer = null;
if (position == 0) {



mPlayer = MediaPlayer.create(HodgeMain.this,
R.raw.Audio1);
mPlayer.start();
}

if (position == 1) {


mPlayer = MediaPlayer.create(HodgeMain.this,
R.raw.Audio2);
mPlayer.start();

}
if (position == 2) {


mPlayer = MediaPlayer.create(HodgeMain.this, R.raw.Audio3);
mPlayer.start();

}
if (position == 3) {


mPlayer = MediaPlayer.create(HodgeMain.this,
R.raw.Audio4);
mPlayer.start();
}
if (position == 4) {


mPlayer = MediaPlayer.create(HodgeMain.this,
R.raw.Audio5);
mPlayer.start();
}
if (position == 5) {


mPlayer = MediaPlayer.create(HodgeMain.this,
R.raw.Audio6);
mPlayer.start();
}
if (position == 6) {


mPlayer = MediaPlayer.create(HodgeMain.this,
R.raw.Audio7);
mPlayer.start();
}

if (position == 7) {


mPlayer = MediaPlayer
.create(HodgeMain.this, R.raw.Audio8);
mPlayer.start();
}
if (position == 8) {


mPlayer = MediaPlayer.create(HodgeMain.this,
R.raw.Audio9);
mPlayer.start();
}
if (position == 9) {


mPlayer = MediaPlayer.create(HodgeMain.this,
R.raw.Audio10);
mPlayer.start();
}
if (position == 10) {


mPlayer = MediaPlayer.create(HodgeMain.this,
R.raw.Audio11);
mPlayer.start();
}
if (position == 11) {

mPlayer = MediaPlayer.create(HodgeMain.this,
R.raw.Audio12);
mPlayer.start();

}

最佳答案

Media player playing multiple files at the same time

尝试

声明MediaPlayer mPlayer;对所有人通用

喜欢

BoardList.setAdapter(adapter);
MediaPlayer mPlayer;

然后使用mPlayer.release();

if (position == 0) {

if(mPlayer!=null)
{
mPlayer.release();
mPlayer=null;
}

mPlayer = MediaPlayer.create(HodgeMain.this,
R.raw.Audio1);
mPlayer.start();

}
.
.
.
.
if(position==N)
{
if(mPlayer!=null)
{
mPlayer.release();
mPlayer=null;
}
mPlayer = MediaPlayer.create(HodgeMain.this,
R.raw.AudioN);
mPlayer.start();
}

关于release():

释放与此 MediaPlayer 对象 关联的资源

使用完 MediaPlayer 后调用此方法被认为是一种很好的做法。

特别是,每当应用程序的 Activity 暂停(调用其 onPause() 方法)或停止(调用其 onStop() 方法) 时,此方法应为 调用以释放 MediaPlayer 对象,除非应用程序有特殊需要保留该对象。

PS. 我已经尝试使用 release() 了,效果很好!

示例:对我有用

try {

if (position == 1) {
if (mPlayer != null) {
mPlayer.release();
mPlayer = null;
}
mPlayer = MediaPlayer.create(MainActivity.this, R.raw.all);
mPlayer.start();
}
if (position == 2) {
if (mPlayer != null) {
mPlayer.release();
mPlayer = null;
}
mPlayer = MediaPlayer.create(MainActivity.this, R.raw.all2);
mPlayer.start();
}
}

catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}

关于android - 媒体播放器同时播放多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18362886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com