java - 列出三个可以点击播放的声音(ogg)文件?

标签 java android audio soundpool ogg

我有三个声音文件:sound1.ogg,sound2.ogg和sound3.ogg。每个文件的长度都是几秒钟,并存储在我项目的/res/raw文件夹中。

我希望它们在我的main_activity上的ListView中具有能够在用户触摸相应的剪辑名称时播放剪辑的功能。

有人可以给我举个例子吗?到目前为止,我已经花了3天的时间查看音池,但仍在挠头。

我对Java不太好

最佳答案

下面的代码将根据单击的项目的位置播放声音。这里的主要xml文件中只有ID为listview1的ListView。
您应该能够更改r.raw引用和列表 View 的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);
                }


    }
    });



}      
}

关于java - 列出三个可以点击播放的声音(ogg)文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18053893/

相关文章:

ios - 如何在玩 Titanium 时返回 5 秒,单击按钮时应该会发生这种情况

java - isTouched 和 justTouched 之间的区别

java - "RuntimeException: Could not deserialize object"从 Firestore 读取嵌套对象时

java - 为什么 onActivityResult() 被工作线程阻塞?

python - 如何使用python将mp4转换为mp3

python - (osx) ffmpeg 将 mp3 和 png 合并为 mp4,生成没有音频的 mp4

Java-对象存在困境

java - 如何让 Java 程序从 iOS 应用程序获取输入

java - 使用通配符的 Kotlin 泛型自定义类型

java - 如何将数组列表中的特定项目移动到第一项