我试图从原始文件夹播放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)
答案 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();