2012-06-18 4 views
1

그래서 오디오 파일 ID가 포함 된 ann 배열이 있습니다. 그러나 사용자에 따라 얼마나 많은 id가있을 것인가 (그는 "a"와 R.raw.a를 배열 형태로 나타냅니다). 어떻게 MediaPlayer를 사용하여이 사운드를 하나씩 재생할 수 있습니까? OnCompletionListener를 사용해야한다고 생각하지만 배열에 얼마나 많은 사운드 ID가 있는지 알지 못합니다. 내가하나씩 오디오 파일을 재생하는 방법

for(){} 

답변

1

를 사용해야 당신은 OnCompletionListener

public class MyActivity extends Activity 
    implements MediaPlayer.OnCompletionListener { 

    MediaPlayer player = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     player = new MediaPlayer(); 
     player.setOnCompletionListener(this); 
     ... 
    } 

    @Override 
    public void onCompletion(MediaPlayer mp) { 
     // Called when playback is complete 
     //Play a next song 
     ... 
    } 
} 

에 오신 것을 환영합니다에 대한 MediaPlayer를 설정할 수 있습니다!

+0

그러나 배열에 얼마나 많은 오디오 파일이 있는지는 알 수 없습니다. – user1437450

0

IntentService를 사용하여 노래를 재생합니다. intentservice을 사용하여 시작한 모든 노래가 대기열에 있습니다. 그것은 하나씩 재생됩니다.

1

당신이 할 수있는 것은 MediaPlayeronCompletionListener은 다음과 같은 것을 넣어 당신의 그런

//define a variable to be used as index. 
int audioindex = 0; 
//Extract the files id into an array 
int[] audioFileIds=new int[]{R.raw.as,R.raw.bs}; 

입니다.

다음 OnCompletionListener에 있습니다.

mp.setOnCompletionListener(new OnCompletionListener(){ 
    // @Override 
    public void onCompletion(MediaPlayer player) { 
    // File has ended, play the next one. 
    FunctionPlayFile(audioFileIds[audioindex]); 
    audioindex+=1; //increment the index to get the next audiofile 
    } 
}); 
+0

"FunctionPlayFile"직접 만들어야합니까? – user1437450

+0

예 파일을 재생하는 기능입니다 !!! –

+0

하지만 두 개 이상의 파일을 재생해야합니다. – user1437450

관련 문제