gpt4 book ai didi

java - listView的每个项目都播放一个不同的(简短的)媒体文件。剪辑了那么多之后,我听不到声音了

转载 作者:行者123 更新时间:2023-12-03 01:53:47 25 4
gpt4 key购买 nike

我正在制作一个音板应用程序。我有一个填充listView的声音描述的字符串列表。我的onItemClick包含一个switch语句,该语句将每个声音分配给列表中的字符串描述。单击列表项时,声音会起作用,但是单击了这么多次后,所有声音都会停止。 switch语句在我的ItemOnClick中看起来像这样:

switch (soundName){
case "magic whoosh":
mediaPlayer = MediaPlayer.create(context, R.raw.magic_whoosh);
mediaPlayer.start();
break;
case "magic poof":
mediaPlayer = MediaPlayer.create(context, R.raw.magic_poof);
mediaPlayer.start();
break;
}

最佳答案

根据要求提供可能的答案;

//declare instance variable
static MediaPlayer mediaPlayer;

//handle listview on item click
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(mediaPlayer==null){
mediaPlayer=new MediaPlayer();
try{
mediaPlayer.setDataSource(//datasource based on position);
mediaPlayer.prepare(); //this uses the same UI thread
mediaPlayer.start();
}catch(Throwable e){
//handle possible errors
}
}else{
if(mediaPlayer.isPlaying())mediaPlayer.stop();
mediaPlayer.reset();
try{
mediaPlayer.setDataSource(//datasource based on position);
mediaPlayer.prepare(); //this uses the same UI thread
mediaPlayer.start();
}catch(Throwable e){
//handle possible errors
}
}
}
});

关于java - listView的每个项目都播放一个不同的(简短的)媒体文件。剪辑了那么多之后,我听不到声音了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37381289/

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