从原始文件夹播放MP3?

时间:2014-01-17 18:10:20

标签: android button android-mediaplayer

我试图从原始文件夹播放MP3 .i有不同的按钮播放不同的MP3,所以我必须每次更改媒体播放器输入这里是我的代码点击按钮:

public void onClick(View v) {
        t=R.raw.virtualbarber
                playsound(t);

        }

这是我的媒体播放器代码,我在.create中犯了错误! :

private void playSound(string t ){
mp = MediaPlayer.create(getActivity(), t);
mp.setOnCompletionListener(new OnCompletionListener() {

@Override
public void onCompletion(MediaPlayer mp) {

    mp.release();
}
}); 
mp.setLooping(true);
mp.start();
}}

我还在我的项目中声明了我的字符串和媒体播放器:

MediaPlayer mp;
int t;

什么都行不通!我的其他程序工作正常,但事实并非如此!

logcat的

01-17 22:01:35.016: E/AndroidRuntime(30521): FATAL EXCEPTION: main
01-17 22:01:35.016: E/AndroidRuntime(30521): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.safshari.board3d/com.safshari.board3d.MainActivity}: java.lang.NullPointerException
01-17 22:01:35.016: E/AndroidRuntime(30521):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2247)
01-17 22:01:35.016: E/AndroidRuntime(30521):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2297)

2 个答案:

答案 0 :(得分:1)

使用

 mp = MediaPlayer.create(getActivity(), R.raw.virtualbarber);

如果是片段而不是this,请使用getActivity()

mediaplayer fixed tnx to you but now im getting nullpointer exception on start of program ? 

如果仍然崩溃,请将更新的相关代码与stacktrace一起发布以获得进一步的帮助

答案 1 :(得分:0)

使用uri之类的东西:

  Uri myUri = Uri.parse("android.resource://com.package.sample/raw/filename");
  mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
  mp.setDataSource(getApplicationContext(), myUri);
  mp.prepare();