나는 헤드폰을 통해 AudioTrack
스트리밍을 가지고 있습니다. SoundPool
을 내장 스피커에만 보내야하며 AudioTrack
헤드폰을 재생하지 않아도됩니다. 해킹 깡패들?헤드폰을 통해 음악을 재생하면서 스피커로 소리내어 읽기
답변
많은 안드로이드 장치는 모든 로컬 재생 (이어폰, 스피커, 유선 헤드셋/헤드폰)을 위해 AudioFlinger/audio HAL에서 단일 출력 스레드를 사용하므로 두 트랙의 다른 라우팅을 동시에 불가능하게 만듭니다 (많은 장치에서 미디어 알림이 재생되고 유선 헤드셋이 연결되어 있으면 스트림이 강제로 음소거됩니다. 그렇지 않으면 알림이 재생되는 동안 라우드 스피커에서 음악을들을 수 있기 때문에 스트림이 강제로 음소거됩니다.
일부 장치에당신이 setForceUse(FOR_MEDIA, FORCE_SPEAKER)
을하고 스피커에서 재생하고자하는 물건에 대한 MUSIC
스트림 유형을 사용하도록 관리하는 경우 당신이 찾고있는 무엇을 할 수있을, 그리고에 대한 VOICE_CALL
스트림 유형 유선 헤드셋에서 연주하고 싶은 물건.
응용 프로그램이 setForceUse
호출을 수행 할 수있는 방법이 있는지 확실하지 않습니다. 아마도 AudioService
클래스의 handleMessage
메소드를 리플렉션을 통해 가져 와서 MSG_SET_FORCE_USE
메시지를 보낼 수 있습니다. 나는 그것을 결코 시도하지 않았으므로 비참하게 실패 할 수 있습니다.
편집 :는 지금 유선 헤드셋이 실제 장치에 연결되어있는 동안 스피커에 미디어 스트림을 강제의 setForceUse 방법을 테스트했습니다, 그리고 그것을 통해 작동 할 것이라고 보장 할 수는 있지만 그것은 (작업을 수행 모든 장치). 구현은 위에서 설명한 것과 약간 다릅니다. 내가 사용한 코드는 내 대답 how to turn speaker on/off programatically in android 4.0을 참조하십시오.
STREAM_RING을 사용하면 헤드폰이 연결되어 있어도 사운드가 스피커로 재전송됩니다. 그러나 헤드폰 (AudioTrack)에서 재생되는 사운드는이 STREAM_RING이 완료되고 다시 시작될 때까지 일시 중지됩니다. 내 우선 순위는 중단없이 헤드폰 스트림을 재생하는 것입니다. –
예, STREAM_RING은 SONIFICATION 라우팅 전략을 따르며, 이는 내 대답의 첫 번째 단락에서 설명한 동작을 트리거합니다. 필자는 유선 헤드셋의 스피커 + VOICE_CALL 스트림에 강제로 전송되는 음악 스트림이 XPeria P에서 제대로 작동하지만 다른 장치에서는 테스트하지 않았 음을 확인했습니다. – Michael
Mike, 너무 힘들게 밀어서 미안하지만, S2와 HTC One X에서 테스트를 해봤습니다. 둘 다 헤드폰에서 오디오를 일시 중지하고 있습니다. 내 것은 끊임없는 연속성으로 시스템의 작동 과정을 위반하게 될 신호입니다. –
- 1. iPhone AudioServicesPlaySystemSound : 헤드폰을 통해 경로를 지정 하시겠습니까?
- 2. 헤드폰을 연결했을 때 스피커를 통해 오디오 라우팅
- 3. iPhone 응용 프로그램에서 스피커와 헤드폰을 전환하는 방법
- 4. SndPlaySound를 통해 음악을 시작하는 방법
- 5. 펄 - 파일 소리내어 문제
- 6. 파이썬 파일 소리내어 먹는다
- 7. 스피커로 사운드 녹음하기
- 8. WPF에서 오디오를 재생하면서 반복 재생
- 9. 아이폰 그럴듯한 음악을 통해 속도 제어 있습니까?
- 10. Android에서 앱을 통해 음악을 다운로드 하시겠습니까?
- 11. iOS 기기를 AirPlay 스피커로 바꾸기
- 12. 스피커로 들어가기 직전에 음파를 처리하십시오.
- 13. iphone xcode에서 마이크에서 스피커로 오디오 스트리밍
- 14. Movieclip을 재생하면서 다른 모든 것을 숨기려면 어떻게해야합니까?
- 15. PHP를 통해 파일 읽기
- 16. JAVA를 통해 CSV 읽기
- 17. HTTP를 통해 XML에서 읽기
- 18. NSListDefaults를 통해 pList 읽기
- 19. Android에서 TTS 사용 : 구두점을 소리내어 읽음
- 20. 각각이 끝날 때 차례대로 소리내어 재생
- 21. 텍스트 및 버튼의 소리내어 쓰기 이상한 행동
- 22. aspx에서 음악을 스트리밍하는 방법
- 23. Android에서 마이크에서 스피커로 음성 버퍼를 라우팅
- 24. Android OS - 전화 통화를 시작한 후 앱에서 소리내어 읽기 및 재생
- 25. 헤드폰을 제거한 후 오디오 스트림 재생이 중지됩니다.
- 26. 사용자가 헤드폰을 뽑을 때 알림이 표시됩니까?
- 27. MPMoviePlayerController가있는 특정 장치에서 헤드폰을 통해서만 소리가납니다.
- 28. 웹을 통해 모바일 장치로 음악을 스트리밍하는 방법은 무엇입니까?
- 29. nodejs 서버 + socket.io를 통해 mp3 파일에서 음악을 연속적으로 스트리밍
- 30. 프로그래밍을 통해 음악을 만드는 데 좋은 API는 무엇입니까?
SoundPool은 AudioTrack과 별도로 작동합니까? – Soham
AudioManager mAudioMgr = (AudioManager) getSystemService (Context.AUDIO_SERVICE); mAudioMgr.setSpeakerphoneOn (true); mAudioMgr.setMode (AudioManager.MODE_IN_COMMUNICATION); –