我一直在完成我的Android项目(供参考,我是一个新手在Android编程),直到我被困在这个…
我做了一个学习法语的Android应用。我成功地制作了整个应用程序,除了声音。
我想做的就是将单词与数据库中的声音连接起来(与字段'_id'连接)
首先,我有一个表名'kata',在英语中是'words'的意思,它包含几个法语单词
表形- _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();
}