Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 列出三个不同的声音(ogg)文件,可以点击播放?_Java_Android_Audio_Soundpool_Ogg - Fatal编程技术网

Java 列出三个不同的声音(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

我有三个声音文件:sound1.ogg、sound2.ogg和sound3.ogg。每个都有几秒钟的长度,并存储在我的项目的
/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);
}
}
});
}      
}
您看过并尝试过遵循它吗?