2016-09-19 83 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