soundpool 예제

finalize의 일반적인 계약은 Java™ 가상 머신이 종료 o에서 수행 한 작업의 결과를 제외하고 아직 죽지 않은 스레드에서이 개체에 액세스 할 수있는 수단이 더 이상 없다고 결정한 경우 호출된다는 것입니다. f 종료할 준비가 된 다른 개체 또는 클래스입니다. FINALize 메서드는 이 개체를 다른 스레드에서 다시 사용할 수 있도록 하는 등 모든 작업을 수행할 수 있습니다. 그러나 종료의 일반적인 목적은 개체가 취소할 수 없이 삭제되기 전에 정리 작업을 수행하는 것입니다. 예를 들어 입력/출력 연결을 나타내는 개체에 대한 종료 메서드는 개체가 영구적으로 삭제되기 전에 연결을 끊기 위해 명시적 I/O 트랜잭션을 수행할 수 있습니다. 이 예제에서는 플레이어가 레벨을 완료하면 게임 로직에서 SoundPool.release()를 호출하여 사용 중의 모든 기본 리소스를 해제한 다음 SoundPool 참조를 null로 설정해야 합니다. 플레이어가 다른 레벨을 시작하면 새 SoundPool이 생성되고 소리가 로드되고 재생이 다시 시작됩니다. 그래서,이 예제에서 우리는 재생 루프에서 재생 중지, 중지하고 안드로이드 SoundPool.class를 사용하여 비프음 소리를 일시 중지 응용 프로그램을 만들려고합니다. 이것은 안드로이드 사운드 풀의 예였다. 이 예제의 이클립스 프로젝트를 다운로드:AndroidSoundPoolExample.zip 지정된 APK 리소스에서 사운드를 로드합니다. 확장이 삭제됩니다.

예를 들어 원시 리소스 파일 “explosion.mp3″에서 사운드를 로드하려면 “R.raw.explosion”을 리소스 ID로 지정합니다. 즉, res/raw 디렉토리에 “explosion.wav”와 “explosion.mp3″를 둘 다 가질 수 없습니다. 열기 src/com.javacodegeeks.android.soundpoolexample/AndroidSoundPoolExample.java 파일을 열고 아래 코드를 붙여 넣습니다. 우리는 간단한 레이아웃 XML을 만들려고, 그 네 개의 버튼이있을 것이다, 안드로이드 사운드 풀 예제의 각 작업에 대한 각 하나. 이러한 단추와 TextView 제목 “누르기:”는 LinearLayout 내부에 있으므로 이러한 모든 구성 요소가 세로로 정렬되고 부모 크기와 너비가 일치할 수 있습니다. 당신은 또한 일시 중지하고 우리가 아래에 했던 것처럼, 모든 현재 재생 사운드를 다시 시작할 수 있습니다 : 위의 xml 코드에서 우리는 각 버튼이 onClick 속성을 가지고 있음을 볼 수 있습니다. 이 코드에서는 xml에서 만든 단추를 누를 때 호출되는 각 메서드에 기능을 제공합니다. OnLoadCompleteListener에 대한 콜백 후크를 설정합니다. 활동의 OnCreate() 메서드에서 카운터를 인스턴스화합니다. 상상, 그 안드로이드 SoundPool.class, 소리의 풀로 작동 (클래스의 이름을 정당화!). 그래서, 수영장의 사운드 클립 중 하나가 모든 재생 또는 playLoop 방법 실행에서 재생되는 정확히 알기 위해, 우리는 쉽게 중지하거나 오른쪽 사운드 클립을 일시 중지 할 수 있도록, soundID를 보유 카운터를 사용했다.

새 스트림 우선 순위가 활성 스트림보다 낮으면 재생되지 않습니다. 우리는 스트림의 최대 수, 스트림 유형 및 소스 품질 안녕하세요, 좋은 튜토리얼 주셔서 감사합니다 설정, 우리의 SoundPool 개체를 구성 … IV는 코드를 적용하지만 버튼을 여러 번 누르면 (안드로이드 게임) 소리가 작동을 중지하고 로그는 나에게이 오류를 보여주는 … E/AudioPolicyManagerBase: getOutput() IOProfile은 null입니다???? 리소스 제약 조건으로 인해 스트림을 중지할 수 있습니다. 우리는 풀의 다음 사운드 클립을 재생하기 전에, 우리는 이미로드 또는 이미 재생되어 있는지 확인하고, 우리는 카운터에서 소리의 ID를 개최 : .

Comments are closed.