我有一个布局,其中有一个'Listen'按钮,所以如果我按下它,它会在我的手机中随机播放某些音频(它们已被分配ID,但我们不用担心)。但是,当我点击按钮时,没有任何播放,尽管吐司显示正确的文件名。
有人可以看一看并告诉我我的代码有什么问题吗?谢谢! > _<
Button btnListen= (Button) findViewById(R.id.buttonListen);
String recR = getIntent().getStringExtra("dataR"); //importing random filename
mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
mFileName = "/rec" + recR + ".mp3";
//filename starts with rec, so itll usually be like recwoof.mp3 or rectest.mp3 etc
btnListen.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
MediaPlayer mPlayer = new MediaPlayer();
Toast.makeText(getApplicationContext(), "show "+ mFileName + " now",
Toast.LENGTH_LONG).show();
try {
mPlayer.setDataSource(mFileName);
mPlayer.prepare();
mPlayer.start();
} catch (IOException e) {
Log.e("meh log", "prepare() failed");
}
}
答案 0 :(得分:3)
您需要连接字符串mFileName
mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
mFileName += "/rec" + recR + ".mp3";
答案 1 :(得分:3)
我认为问题在于:
mFileName = Environment.getExternalStorageDirectory().getAbsolutePath();
mFileName = "/rec" + recR + ".mp3";
更改为:
mFileName = Environment.getExternalStorageDirectory().getAbsolutePath() + "/rec" + recR + ".mp3";
您将在 LogCat
中获得更多信息改变这个:
} catch (IOException e) {
Log.e("meh log", "prepare() failed");
}
为:
} catch (IOException e) {
Log.e("Fuchsia Player", e.getMessage());
}
所以在你的LogCat中你可以找到标签" Fuchsia Player"以及有关异常的更多信息。
答案 2 :(得分:2)
请考虑一下这里:Android player 他在整个教程中提供了如何创建音乐播放器的代码,当然还有你要求的按钮!!