【发布时间】:2017-01-27 07:44:54
【问题描述】:
目前我正在开发音乐播放器。请帮我解决这些错误
public class MainActivity extends Activity {
Button playb,pauseb,stopb;
SeekBar seeker;
Handler seekhandler;
MediaPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
player=new MediaPlayer();//.create(MainActivity.this, R.raw.spaceman);
//Interface between code and xml
playb=(Button)findViewById(R.id.play_button);
stopb=(Button)findViewById(R.id.stop_button);
pauseb=(Button)findViewById(R.id.pause_button);
seeker=(SeekBar)findViewById(R.id.seekBar);
try {
player.prepare();
} catch (IOException e) {
Toast.makeText(getApplicationContext(),(CharSequence) e,Toast.LENGTH_SHORT ).show();
}
//Code for Play Button
playb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view){
player.stop();
player.reset();
seeker.setProgress(0);
try {
player.prepare();
} catch (IOException e) {
Toast.makeText(getApplicationContext(), (CharSequence) e,Toast.LENGTH_SHORT).show();
}
player.start();
seeker.setMax(player.getDuration());
}
});
//Code for Pause button
pauseb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
player.pause();
}
});
//code for Stop button
stopb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
player.reset();
}
});
//Code for seekbar change listner
seeker.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
Runnable runnable =new Runnable() {
@Override
public void run() {
seeker.setProgress(player.getCurrentPosition());
seekhandler.postDelayed(this,1000);
}
};
}
}
错误:
09-19 20:16:15.342 25242-25242/main.deviac.com.seekbar E/AndroidRuntime: 致命异常: main 进程:main.deviac.com.seekbar,PID:25242 java.lang.RuntimeException:无法启动活动 ComponentInfo{main.deviac.com.seekbar/main.deviac.com.seekbar.MainActivity}:java.lang.IllegalStateException 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2452) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2535) 在 android.app.ActivityThread.access$900(ActivityThread.java:154) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1380) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:152) 在 android.app.ActivityThread.main(ActivityThread.java:5497) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 原因:java.lang.IllegalStateException 在 android.media.MediaPlayer._prepare(本机方法) 在 android.media.MediaPlayer.prepare(MediaPlayer.java:1158) 在 main.deviac.com.seekbar.MainActivity.onCreate(MainActivity.java:42) 在 android.app.Activity.performCreate(Activity.java:6285) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2405) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2535) 在 android.app.ActivityThread.access$900(ActivityThread.java:154) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1380) 在 android.os.Handler.dispatchMessage(Handler.java:102) 在 android.os.Looper.loop(Looper.java:152) 在 android.app.ActivityThread.main(ActivityThread.java:5497) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 09-19 20:16:15.344 25242-25242/main.deviac.com.seekbar D/AppTracker: 应用事件: 崩溃 09-19 20:16:28.590 25409-25409/main.deviac.com.seekbar W/系统:类加载器引用未知路径:/data/app/main.deviac.com.seekbar-2/lib/arm64 09-19 20:16:28.669 25409-25409/main.deviac.com.seekbar W/系统:类加载器引用未知路径:/data/app/main.deviac.com.seekbar-2/lib/arm64
我已将 mp3 文件(spaceman)保存在 res 目录中的 raw 文件夹中
【问题讨论】:
-
解决了您的问题? @Atharva Muley
-
不,它仍然给出同样的错误。我尝试重建项目,但一切都是徒劳的!我也是 android 编程的新手@Vinoth Vino
-
你有没有试过实现我在这里回答的代码@Atharva Muley
-
是的,我尝试过创建方法,没有尝试过另一个@Vinoth Vino
-
尝试 setDataSource 方法@Atharva Muley
标签: android android-mediaplayer illegalstateexception