2013-11-26 2 views
0

일부 .wav 파일을 재생해야하지만 일부만 재생해야합니다 (시작부터). 예를 들어 test.wav 파일이 있고 10 초에서 0-5 초만 재생하려고합니다. seekTo 메서드를 사용하려고하지만 내 응용 프로그램이 손상된 경우 도움이되지 않습니다.Android 오디오 파일 재생 (.wav)

AssetFileDescriptor afd = context.getResources().openRawResourceFd(R.raw.test); 
    mMediaPlayer.setAudioStreamType(AudioManager.STREAM_SYSTEM); 
    mMediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); 
    mMediaPlayer.setOnPreparedListener(mOnPreparedListener); 
    mMediaPlayer.setOnCompletionListener(mMediaPlayerCompletionListener); 
    mMediaPlayer.seekTo(5000); 
    mMediaPlayer.prepare(); 
+0

유는 앱에서 –

+0

일부 부분을 .wav 오디오를 재생하는 것을 의미합니다. 준비 후 seekto를 호출해야하지만 불행히도 seekto는 시작 위치가 아닌 설정 위치에서 레코드를 재생하기 시작했습니다. – GigantoMK

답변

2

설정된 시간 (사용자의 경우 5 초) 후에 재생을 멈출 수 있습니다. 그렇게하는 방법에는 여러 가지가 있는데, 하나가 될 수 :

final Handler handler = new Handler(); 

//create a runnable that will be called to stop playback 
final Runnable runnable = new Runnable() { 
    @Override 
    public void run() { 
     //stop playback, make sure mMediaPlayer is declared as a field 
     //in the class where it's used 
     mMediaPlayer.stop(); 
    } 
}; 

//post a job for handler do be done in 5 seconds 
handler.postDelayed(runnable, 5 * 1000); 
+0

좋은 아이디어를 주셔서 감사합니다 !!! – GigantoMK

0

당신이 준비 호출하기 전에 당신이 내가 당신이 실제로 정직하게 MediaPlayer.play()를 호출하기 전에 당신이를 확인해야 그렇게하지만 확실히 준비합니다 수 있는지 확실하지 않다 추구 할 수 먼저 간다.

+0

그래 그것이 사실 .WAV 파일의 바로 – GigantoMK