如果要播放的特定文件取决于SQLite查询,如何播放存储在资源或原始资源文件夹中的声音?

时间:2014-03-08 10:45:39

标签: android sqlite soundpool

我找到了一种方法,如何在我的资源文件夹(res或资源,以任何适当的存储方式)播放声音,但是将加载到soundpool或mediaplayer的文件取决于SQLite查询。

我目前正在制作一个翻译应用程序,通过搜索引擎显示单词或句子翻译(只是注意到这个应用程序只是一个搜索引擎,而不是像谷歌翻译这样的翻译)。我需要一个“发音”按钮,它将播放如何将搜索到的单词发音到其方言,并且此文件(已预先录制)将存储在资源文件夹中。就像当用户搜索单词“apple”并点击按钮时,它将在资源文件夹中播放“apple.mp3”。

我刚接触Android编程,我在网上搜索并找到有关soundpool和媒体播放器的答案,但我想我以前没见过这样的。

1 个答案:

答案 0 :(得分:1)

根据我的评论:

  1. 在数据库表中再创建一列
  2. 将您的引用放入此列(即R.raw.my_sound.mp3)(!记住引用始终为int!)
  3. 当您从此列查询获取值并使用它时(我没有测试它。它更像伪代码;)):

    Cursor cursor = database.query(DATABASE_TABLE, 
    new String[] { KEY_REFERENCES }, WORD + " = " + insertedWord, null, null, null, null); 
    if (cursor.moveToFirst()){
       int reference = cursor.getInt(referenceColumnIndex);
       MediaPlayer mp = MediaPlayer.create(YourActivityClass.this, reference);
       if(mp != null) {
          mp.start();
       }
    }
    
  4. 我认为它应该有用。