2014-06-11 3 views
1

누군가 이미 주어진 시간 동안 특정 주파수의 톤을 생성하는 코드를 작성했습니다. SO 링크는 여기에 제공됩니다 : How to Generate A Particular Sound Frequency?.명시 적으로 중지 될 때까지 안드로이드 사운드 재생

나는 소리를 무한정 재생하고 3 초 동안 재생하지 않아도됩니다. 버튼을 클릭 할 때 소리가 들리지 않게하고 싶습니다. 나는 타이머 함수를 반복적으로 반복해서 사용할 수 있다고 생각했다. 사용자가 '중지'버튼을 클릭하면 audiotrack.pause를 호출하거나 중지하려고합니다. 이것은 좋은 방법인가요? 아니면 이것에 대한 더 나은 논리가 있습니까?

답변

1

감사합니다 Boggartfly하지만 나는 훨씬 간단한 해결책을 발견했습니다. audiotrack 객체를 반복 할 수 있습니다.

다음 코드를 사용했습니다.

  audioTrack.setLoopPoints(0, generatedSnd.length/4, -1); 

시작 프레임은 0이다. 끝 프레임은 16 비트 PCM의 경우 길이가 4입니다. 여기서 음수 1은 루프 무한 시간을 의미합니다.

2

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

//Declare a new object 

MediaPlayer Mp3=new MediaPlayer(); 

//Then set path of file 
Mp3.setDataSource(“sdcard/filename.mp3”); 

//Before playing audio, call prepare 
Mp3.prepare(); 

//For Looping (true = looping; false = no looping) 
Mp3.setLooping(true); 

//To play audio ,call 
Mp3.start(); 

//To pause, call 
Mp3.pause 

//To stop audio, call 
Mp3.stop(); 

끝났습니다!

+0

감사하지만 파일을 재생하고 싶지는 않습니다. 나는 특정 주파수의 톤을 생성하고 싶다. 미디어 플레이어를 사용할 수 있는지 확실하지 않습니다. – Susheel

+0

@Susheel 잘 결합하십시오. MediaPlayer에 인수를 다른 클래스에서 전달합니다. 다른 클래스는 MediaPlayer의 소스로 작동합니다. – Boggartfly

+0

나는 그것을 시도하고 알려 드리겠습니다. – Susheel