안 드 로 이 드 개발 에서 소 리 를 재생 하 는 두 가지 방법 분석

본 고 는 안 드 로 이 드 개발 에서 소 리 를 재생 하 는 두 가지 방법 을 실례 로 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
안 드 로 이 드 에 서 는 오디 오,동 영상 등 멀티미디어 요 소 를 추가 하여 응용 프로그램의 사용자 체험 을 더욱 좋게 한다.현재 의 휴대 전 화 는 통신 수단 뿐만 아니 라 오락,사무의 필수 제품 이 되 었 다 고 할 수 있다.
Android 는 간단 한 오디 오 API 를 제공 합 니 다.일반적으로 미디어 플레이어 에서 오디 오 를 재생 하 는 것 을 사용 하 는데 이것 도 가장 흔히 볼 수 있 는 소 리 를 재생 하 는 도구 이다.이런 도 구 는 인터넷 상에 대량의 실례 가 있 기 때문에 여기 서 간단 한 소개 만 한다.
방송 행위 에 대한 통 제 는 세 가지 익숙 한 방법 이다.start()이 방법 을 통 해 새로 만 든 MediaPlayer 대상 을 얻 을 수 있 습 니 다.
재생 과정 에서 재생 과정 을 감청 할 수 있 는 모니터 가 몇 개 있 습 니 다.예 를 들 어:

setOnCompletionListener(MediaPlayer.OnCompletionListener listener)

오디 오 재생 종료;

setOnErrorListener(MediaPlayer.OnErrorListener listener)

재생 중 오류 사건 을 감청 하기;

setOnPreparedListener(MediaPlayer.OnPreparedListener listener)

4stop()호출 되 었 을 때 촉발 합 니 다.
하지만 미디어 플레이어 로 재생 할 때 도 문제 가 있 습 니 다.우 리 는 MediaPlayer 가 창설 과 소각 할 때 대량의 시스템 자원 을 소모 하고 창설 과 소각 하 는 시간 이 상대 적 으로 길다 는 것 을 안다.또한,우리 가 같은 시간 에 많은 소 리 를 재생 해 야 한다 면 MediaPlayer 는 지원 하지 않 습 니 다.
그래서 우 리 는 더욱 경량급 의 음성 재생 도구 가 필요 하 다.
안 드 로 이 드 는 반복 재생 이 필요 하지만 시간 이 짧 은 사 운 드 풀 이라는 또 다른 효 과 를 제공 합 니 다.다양한 소 리 를 동시에 재생 할 수 있 습 니 다.이 소 리 는 시스템 이 시 작 될 때 목록 에 불 러 옵 니 다.이 소리의 id 에 따라 이 소 리 를 호출 할 수 있 습 니 다.
사 운 드 풀 이 어떻게 일 하 는 지 실례 를 들 어 보 겠 습 니 다.
예 를 들 어 지금 오목 게임 에서 우 리 는 바둑 알 이 떨 어 질 때 소 리 를 틀 어야 한다.우 리 는 SoundPool 을 이용 할 수 있다.왜냐하면 그것 은 시간 이 매우 짧 고 반복 적 으로 재생 해 야 하기 때문이다.그리고 우 리 는 소리 가 너무 큰 자원 을 차지 하 는 것 을 원 하지 않 는 다.
코드 먼저 보기:

private SoundPool soundPool;
soundPool= newSoundPool(10,AudioManager.STREAM_SYSTEM,5);
soundPool.load(this,R.raw.collide,1);
soundPool.play(1,1, 1, 0, 0, 1);

코드 는 매우 간단 합 니 다.첫 번 째 줄 은 SoundPool 대상 을 설명 하 는 것 입 니 다.이것 은 보통 클래스 의 구성원 속성 으로 나타 납 니 다.두 번 째 줄 은 soundPool 을 예화 합 니 다.첫 번 째 매개 변 수 는 soundPool 이 지원 할 수 있 는 사 운 드 수량 입 니 다.이것 은 Android 가 얼마나 큰 버퍼 를 개설 하 는 지 결정 합 니 다.두 번 째 매개 변 수 는 사 운 드 유형 입 니 다.여기 서 시스템 사 운 드 로 표 시 됩 니 다.그 밖 에 AudioManager.STREAM 도 있 습 니 다.RING 및 AudioManager.STREAMMUSIC 등 은 시스템 이 서로 다른 소리 에 따라 그 표지 의 서로 다른 우선 순위 와 버퍼 구역 을 표시 하고 마지막 매개 변 수 는 음성 품질 로 품질 이 높 을 수록 음성 효과 가 좋 지만 더 많은 시스템 자원 을 소모 한다.
세 번 째 줄,시스템 은 soundPool 로 소 리 를 불 러 옵 니 다.첫 번 째 매개 변 수 는 컨 텍스트 매개 변수 이 고 두 번 째 매개 변 수 는 소리의 id 입 니 다.일반적으로 저 희 는 소리 정 보 를 res 의 raw 폴 더 에 저장 합 니 다.아래 그림 과 같 습 니 다.

세 번 째 매개 변 수 는 소리의 우선 순위 입 니 다.여러 소리 가 충돌 하여 동시에 재생 할 수 없 을 때 시스템 은 우선 순위 가 높 습 니 다.
네 번 째 줄 은 재생 입 니 다.첫 번 째 매개 변 수 는 id 입 니 다.id 는 soundPool 에 넣 는 순서 입 니 다.예 를 들 어 현재 collide.wav 가 첫 번 째 이기 때문에 id 는 1 입 니 다.두 번 째 와 세 번 째 매개 변 수 는 좌우 채널 의 볼 륨 제어 이다.네 번 째 매개 변 수 는 우선 순위 입 니 다.이 소리 만 있 기 때문에 우선 순 위 는 여기 서 중요 하지 않 습 니 다.다섯 번 째 매개 변 수 는 순환 재생 여부 이 고 0 은 순환 하지 않 으 며-1 은 순환 입 니 다.마지막 매개 변 수 는 재생 비율 로 0.5 에서 2 까지 보통 1 로 정상 재생 을 나타 낸다.
더 많은 안 드 로 이 드 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 에서 말 한 것 이 여러분 의 안 드 로 이 드 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기