Java 列出三个不同的声音(ogg)文件,可以点击播放?
我有三个声音文件:sound1.ogg、sound2.ogg和sound3.ogg。每个都有几秒钟的长度,并存储在我的项目的Java 列出三个不同的声音(ogg)文件,可以点击播放?,java,android,audio,soundpool,ogg,Java,Android,Audio,Soundpool,Ogg,我有三个声音文件:sound1.ogg、sound2.ogg和sound3.ogg。每个都有几秒钟的长度,并存储在我的项目的/res/raw文件夹中 我希望他们在我的主要活动的列表视图中,能够在用户触摸相应的剪辑名称时播放剪辑 有人能给我举一个例子说明如何做到这一点吗?到目前为止,我已经花了3天的时间看soundpool了,但我还是挠头 我对java不是很在行下面的代码将根据单击项目的位置播放声音。这里的主xml文件中只有一个ID为listview1的ListView。 您应该能够更改r.raw
/res/raw
文件夹中
我希望他们在我的主要活动的列表视图中
,能够在用户触摸相应的剪辑名称时播放剪辑
有人能给我举一个例子说明如何做到这一点吗?到目前为止,我已经花了3天的时间看soundpool了,但我还是挠头
我对java不是很在行下面的代码将根据单击项目的位置播放声音。这里的主xml文件中只有一个ID为listview1的ListView。 您应该能够更改r.raw引用和列表视图的id,这段代码将起作用 有大量的教程,如果你自己尝试这样的事情而不是问答案,你会学到更多
public class MainActivity extends Activity {
SoundPool sp;
String sounds[] = {"sound1","sound2","sound3"};
private ListView lv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
sound1 = sp.load(this, R.raw.sound1, 1);
sound2 = sp.load(this, R.raw.sound2,1);
sound3 = sp.load(this, R.raw.sound3,1);
lv =(ListView) findViewById(R.id.listview1);
lv.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, sounds));
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> list, View view, int position,
long id) {
// TODO Auto-generated method stub
if(position == 0){
sp.play(sound1, 1, 1, 0, 0, 1);
}else if (position == 1){
sp.play(sound2,1,1,0,0,1);
}else if (position == 2){
sp.play(sound3, 1, 1, 0, 0, 1);
}
}
});
}
}
公共类MainActivity扩展活动{
声池;
字符串声音[]={“sound1”、“sound2”、“sound3”};
私有ListView lv;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sp=新的声音池(5,AudioManager.STREAM_MUSIC,0);
sound1=sp.load(该,R.raw.sound1,1);
sound2=sp.荷载(该,R.原始sound2,1);
sound3=sp.荷载(该,R.原始sound3,1);
lv=(ListView)findViewById(R.id.listview1);
lv.setAdapter(新阵列适配器),
android.R.layout.simple_list_item_1,sounds));
lv.setTextFilterEnabled(真);
lv.setOnItemClickListener(新的OnItemClickListener()
{
@凌驾
public void onItemClick(适配器视图列表、视图视图、整型位置、,
长id){
//TODO自动生成的方法存根
如果(位置==0){
sp.play(声音1,1,1,0,0,1);
}否则如果(位置==1){
sp.play(声音2,1,1,0,0,1);
}否则如果(位置==2){
sp.play(声音3、1、1、0、0、1);
}
}
});
}
}
您看过并尝试过遵循它吗?