2013-06-30 2 views
1

Processing 2.0을 사용하여 Android 기기 용 앱을 개발 중입니다. 이제 playMP3()이 있습니다. 함수를 사용하지만 stopMP3();을 사용하여 사운드를 중지해야합니다. 모든 것을 시도했지만 mp3를로드하고 처리를 사용하여 멈추는 가장 좋은 방법은 무엇입니까?, snd.stop(); stopMP3 기능이 작동하지 않습니다 내 ...Android 용 Processing (중지 필요)에서 MP3 사운드 작업

import android.media.*; 
import android.content.res.*; 

...

MediaPlayer snd; 

...

void setup() 
{ 
MediaPlayer snd = new MediaPlayer(); 
} 

...

void playMP3() 
    { 
try { 
    AssetManager assets = this.getAssets(); 
    AssetFileDescriptor fd = assets.openFd("loop1.mp3"); 
    snd.setDataSource(fd.getFileDescriptor(), fd.getStartOffset(), fd.getLength()); 
    snd.prepare(); 
    snd.start(); 
    snd.setLooping(true); 
    } 
    catch (IllegalArgumentException e) { 
    e.printStackTrace(); 
    } 
    catch (IllegalStateException e) { 
    e.printStackTrace(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    } 

}

void stopMP3(){ 
???? 
} 
+0

어디 정지를 요구하고있다()? mp3가 중지를 실행하기 전에 적어도 시작되었는지 확인하기 위해 단추로 시도해 봤습니까? – eski

+0

OnCompletionListener를 만들고 음악이 끝나면 중지하고 사용자가 –

+0

@ eskimoapps.com을 클릭하면 snd.stop()을 호출하는 버튼을 만들 수 있습니다. 사운드 루프를 시작하는 playMP3() 함수 앞에 버튼이 있습니다. 그러나 멈춤 기능 안에서 멈추는 방법을 모른다면 어쩌면 기억이나 소리를 메모리에서 지우는 명령이 있을지 모르겠습니다. 미리 감사드립니다. –

답변

0

이 내가 당신에게 도움을 바란다 미디어 플레이어

private MediaPlayer m_Player; 

//Start Play Function 
private void startPlaying() { 
    m_Player = new MediaPlayer(); 
    m_Player.setOnCompletionListener(onComplete); 
    try { 
     if(m_Player.isPlaying()) 
      stopPlaying(); 

     m_Player.setDataSource(m_FileName); 
     m_Player.prepare(); 
     m_Player.start(); 

    } catch (IOException e) { 

    } 
} 

//Stop Play Function 
private void stopPlaying() { 
    m_Player.stop(); 
    m_Player.reset(); 
    m_Player = null; 
} 

//and this is onComplete Listener 
MediaPlayer.OnCompletionListener onComplete = new OnCompletionListener() 
{ 

    @Override 
    public void onCompletion(MediaPlayer mp) 
    { 
     stopPlaying(); 
    } 
}; 

에 대한 간단한 샘플

관련 문제