2014-11-30 3 views
0

아무도이 코드가 작동하지 않는 이유를 말할 수 있습니까? 그것은 컴파일하지만 버튼을 클릭하면 아무 것도 재생되지 않고 충돌이 발생합니다. 나는 멍청이야 = [미디어 플레이어에서 mp3를 재생할 수 없음

public class MainActivity extends ActionBarActivity { 

private MediaPlayer newTune; 
    public void playB(View paramView) throws IOException { 
    newTune = MediaPlayer.create(this, R.raw.b); 

    if (newTune.isPlaying()) { 
     // newTune.stop(); 
    } else { 
     newTune.prepare(); 
     newTune.start(); 
    } 
} 
+1

무엇을 작동하지 않습니다

public class MainActivity extends ActionBarActivity { private MediaPlayer newTune; public void play() { newTune = MediaPlayer.create(this, R.raw.b); newTune.start(); } } 

여기에 모든 일을 처리하는 더 좋은 방법의 간단한 예제? 앱이 다운 되나요? 아무 것도 안 들려요? 함께 일할 수있는 좀 더 자세한 정보를 보내주십시오. – James

+0

일부 인쇄물을 제공 할 수 있습니까? – Michael

답변

0

내가 볼 수있는 몇 가지 문제점이있다.

1) prepare()으로 전화 할 필요가 없습니다. create()은 이미이 문제를 처리하고 있습니다.

2.) newTune.isPlaying()은 방금 새로운 MediaPlayer를 만들었으므로 항상 false가됩니다. 워드 프로세서

:

MediaPlayer.onCreate()

http://developer.android.com/reference/android/media/MediaPlayer.html

...

편리한 방법은 주어진 자원 ID에 대한 MediaPlayer를을 만들 수 있습니다. 성공시 prepare()가 이미 호출되었으며 다시 호출 된 이 아니어야합니다. 이 같은

시도 뭔가 :

public class MainActivity extends Activity { 

    private MediaPlayer mMediaPlayer; 
    private boolean mIsPrepared; 

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

     mMediaPlayer = MediaPlayer.create(this, R.raw.raw1); 
     mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      @Override 
      public void onPrepared(MediaPlayer mp) { 
       mIsPrepared = true; 
      } 
     }); 

     Button button = (Button) findViewById(R.id.button1); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       playOrPause(); 
      } 
     }); 
    } 

    public void playOrPause() { 
     if (mMediaPlayer == null || !mIsPrepared) { 
      return; 
     } 
     if (!mMediaPlayer.isPlaying()) { 
      mMediaPlayer.start(); 
     } else { 
      mMediaPlayer.pause(); 
     } 
    } 

} 
+0

이것은 Stackoverflow에 대한 제 첫 질문이었습니다, 적시에 정확한 응답을 주셔서 감사합니다.]] – user2746059

+0

환영합니다. :) MediaPlayer 재생 처리를 향상시킬 수있는 방법에 대한 자세한 예를 보려면 편집을 참조하십시오. –

관련 문제