2016-09-19 106 views
1

目前我正在使用音乐播放器。请帮我出这些错误Android媒体播放器上的错误

错误:

09-19 20:16:15.342 25242-25242/main.deviac.com.seekbar E/AndroidRuntime:致命异常:主要 过程:main.deviac.com.seekbar,PID:25242 java.lang.RuntimeException:无法启动活动ComponentInfo {main.deviac.com.seekbar/main.deviac.com.seekbar.MainActivity}:java.lang.IllegalStateException at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2452) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2535) at android.app.ActivityThread.access $ 900(ActivityThread.java:154) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1380 )Android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:152) at 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在android.media.MediaPlayer._prepare(本机方法) 在main.deviac.com.seekbar java.lang.IllegalStateException 在android.media.MediaPlayer.prepare(MediaPlayer.java:1158) :) 引起.MainActivity.onCreate(MainActivity.java:42) at android.app.Activity.performCreate(Activity.java:6285) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread .performLaunchActivity(ActivityThread.java:2405) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2535)在android.app.ActivityThread.access $ 900(ActivityThread.java:154) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1380) at android.os.Handler.dispatchMessage(Handler.java:102 ) at android.os.Looper.loop(Looper.java:152) at android.app.ActivityThread.main(ActivityThread.java:5497) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 09-19 20:16:15.344 25242 -25242/main.deviac.com.seekbar D/A ppTracker:App事件:崩溃 09-19 20:16:28.590 25409-25409/main.deviac.com.seekbar W/System:ClassLoader引用未知路径:/data/app/main.deviac.com.seekbar-2/ lib/arm64 09-19 20:16:28.669 25409-25409/main.deviac.com.seekbar W/System:ClassLoader引用未知路径:/data/app/main.deviac.com。搜索条-2/lib目录/ arm64

我一直在位于res目录

+0

解决了您的问题? @Atharva Muley –

+0

不,它仍然给出同样的错误。我试着重建项目,但一切都是徒劳的!我也是完全陌生的android编程@ Vinoth Vino –

+0

你试过执行我在这里回答的代码吗@Atharva Muley –

回答

1

欢迎来到Android的媒体播放器,或者我称之为“基于状态的地狱”。

您的原始错误是由准备媒体播放器引起的,如果您在本地播放音频文件,则不准备媒体播放器,因为create()方法(如果使用此方法创建媒体播放器)会自动准备。还有其他媒体播放器基于状态的错误,但下面的代码应该修复它们。

现在不考虑搜索条代码(我会得到这个基本的播放,暂停,停止代码搜索条的功能加入之前的工作),你的代码的播放,暂停和停止按钮应该是这样的:

public class MainActivity extends Activity { 

    Button playb, pauseb, stopb; 

    MediaPlayer mediaPlayer; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     //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); 

     //Code for Play Button 
     playb.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       mediaPlayer = MediaPlayer.create(MainActivity.this, R.raw.file_to_play.mp3);     
       mediaPlayer.start(); 

      } 
     }); 


     //Code for Pause button 
     pauseb.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if (mediaPlayer != null && mediaPlayer.isPlaying()) { 
        mediaPlayer.pause(); 
       } else { 
        mediaPlayer.start(); 
       } 

      } 
     }); 

     //code for Stop button 
     stopb.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 

       if (mediaPlayer != null && mediaPlayer.isPlaying()) { 
        mediaPlayer.stop(); 
        mediaPlayer.reset(); 
       } 
      } 
     }); 
} 
+0

你的代码工作。非常感谢你! :)@ ShadowGod –

0

您对文件路径添加到您的媒体播放器的原始文件夹中的MP3文件(太空人)。只需拨打一个静态方法create在媒体播放器类

MediaPlayer player = MediaPlayer.create(this, R.raw.yoursongfile); 

或调用setDataSource方法

player.setDataSource("/sdcard/Music/songfile.mp3");//Path of your song location 

,或者您也可以访问这样的资源低于

player.setDataSource(context, Uri.parse("android.resource://com.package.name/raw/songfile"));

See this doc