播放音频按钮不起作用

时间:2014-02-12 15:54:17

标签: android button audio media-player

我有一个布局,其中有一个'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");
    }
        }

3 个答案:

答案 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 他在整个教程中提供了如何创建音乐播放器的代码,当然还有你要求的按钮!!