根据身份证播放声音

时间:2014-07-15 14:59:13

标签: android database eclipse audio

我一直在完成我的Android项目(fyi,我是android编程的新手),直到我遇到这个问题..

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

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

首先,我有一个表名' kata'这意味着'单词'英语中包含几个法语单词

表kata

  1. _id
  2. 印度尼西亚
  3. baca(表示:如何阅读)
  4. 然后我在互联网上搜索了很多引用,他们告诉我不要用数字保存声音文件。 所以,我有像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)
    

    请帮助我:(我一直在努力尝试

1 个答案:

答案 0 :(得分:0)

您能否提供有关错误的更多详细信息,并告诉我您的数据在数据库或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();
            }