android - 根据 ID 播放声音

标签 android database eclipse audio

我一直在完成我的 Android 项目(仅供引用,我是 android 编程的新手),直到我被这个卡住了..

我制作了一个用于学习法语的 Android 应用程序。
我成功地制作了除声音之外的整个应用程序。

我要做的就是将单词与数据库中的声音连接起来(与字段'_id'连接)

首先,我有一个表名“kata”,它在英语中的意思是“单词”,其中包含几个法语单词

表型

  • _id
  • 法语
  • 印度尼西亚
  • baca(意思是:如何阅读)

  • 然后我在互联网上搜索了很多引用资料,他们告诉我不要用数字保存声音文件。
    所以,我有这样的 a.mp3、b.mp3、c.mp3 等音乐文件。

    然后我连接了这段代码..
    public class LazyAdapter extends BaseAdapter implements OnClickListener {
    
    private Activity activity;
    private List<List<String>> data;
    private static LayoutInflater inflater = null;
    private MediaPlayer mp;
    
    public LazyAdapter(Activity a, List<List<String>> d) {
        activity = a;
        data = d;
        inflater = (LayoutInflater) activity
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    
    public int getCount() {
        return data.size();
    }
    
    public Object getItem(int position) {
        return position;
    }
    
    public long getItemId(int position) {
        return position;
    }
    
    public View getView(int position, View convertView, ViewGroup parent) {
        View vi = convertView;
        if (convertView == null)
            vi = inflater.inflate(R.layout.detail, null);
    
        speaker.setOnClickListener(this);
    
        List<String> kata = new ArrayList<String>();
        kata = data.get(position);         //try to fetch records
    
           final String ambil = kata.get(0);  //try to fetch the word's id
    

    }

    然后我不知道该怎么办:(

    我试过了
    speaker.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    MediaPlayer mp = new MediaPlayer();
                    String name="a";
                    try {
                        mp.setDataSource("android.resource://com.mroring.belajarperancis/raw/"+name);
                        mp.prepare();
                        mp.start();
                    } catch (IllegalArgumentException | SecurityException
                            | IllegalStateException | IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
    

    它给了我错误
    07-15 21:39:05.469: E/MediaPlayer(25717): error (1, -2147483648)
    

    请帮助我:(我一直在尽我所能

    最佳答案

    你能提供更多关于你的错误的细节吗?你能告诉我你的声音在你的数据库或文件 Raw 中的位置吗?

    如果您的声音 (a.mp3) 位于文件 Raw 中以重现该声音,则您需要此代码。

     MediaPlayer mp = MediaPlayer.create(this, R.raw.a);  
    
     mp.start();
    

    在你的代码中试试这个。
    speaker.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) {
                MediaPlayer mp = new MediaPlayer();
                //String name="a";
                try { 
                    MediaPlayer mp = MediaPlayer.create(activity, R.raw.a);  
                    mp.start();
                } catch (IllegalArgumentException | SecurityException
                        | IllegalStateException | IOException e) {
                    // TODO Auto-generated catch block 
                    e.printStackTrace();
                } 
    

    关于android - 根据 ID 播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24761555/

    相关文章:

    android - 来自 Android App 的 wp v2 rest 请求过载 CPU 使用率

    java - 在java中读取PKCS#1 RSA公钥的轻量级api?

    android - 显示 PopupWindow 时无法单击父 Activity 按钮

    php - Yajra 数据表全局搜索不起作用

    Android 调试/运行配置

    android - 在Android的Build Intermediate Androidmainfest.xml中添加了android.support.v7.widget.TestActivity

    node.js - Webdriver.io - 如何在配置中使用 beforeEach Hook

    php - 在这种情况下,如何从具有外键的不同 mysql 表中删除数据?

    java - 什么是 JBOSS- "Empty name segment is not allowed for java"错误

    java - LibGDX 3d 模型纹理无法正确渲染