我一直在完成我的Android项目(fyi,我是android编程的新手),直到我遇到这个问题..
我制作了一个用于学习法语的Android应用程序。 除了声音,我成功完成了整个应用程序。
我想要做的就是将单词与我的数据库中的声音连接起来(与字段' _id'相连)
首先,我有一个表名' kata'这意味着'单词'英语中包含几个法语单词
表kata
然后我在互联网上搜索了很多引用,他们告诉我不要用数字保存声音文件。 所以,我有像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)
请帮助我:(我一直在努力尝试
答案 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();
}