因此,我正在研究一個鬧鐘應用程序,並且當我在設備中有耳機插孔時,使用外接揚聲器來使用揚聲器電話時遇到了麻煩。我發現this solution,但正如評論所說,這不是一個可靠的方法來做到這一點。我還發現有人有類似的問題here,並且有一個方法SimpleExoPlayer.setAudioStreamType()
,但不幸的是它在ExoPlayer 2.0.4中不起作用。有任何想法嗎?使exoPlayer 2.0通過揚聲器播放
0
A
回答
1
好吧,我找到了解決方案!當您創建exoPlayer時,您可以使用默認渲染器(即ExoPlayerFactory.newSimpleInstance()
)或創建自己的渲染器來執行特定的操作。默認音頻渲染器(MediaCodecAudioRenderer
)的問題在於它默認設置了AudioManager.STREAM_MUSIC
,並且ExoPlayer 2.x沒有任何方法來更改它(儘管ExoPlayer 1.x中有這種方法)。
爲了解決這個問題,我必須創建自己的音頻渲染器並將AudioManager.STREAM_ALARM
作爲其參數之一。之後,您可以使用ExoPlayerFactory.newInstance()
並將創建的渲染器傳遞給它。
下面是一個類,您可以使用它來獲取將始終通過揚聲器電話播放音樂的ExoPlayer實例。它也將使用警報音量級別。
public class AlarmExoPlayerFactory {
public static ExoPlayer newInstance() {
Renderer[] renderers = new Renderer[1];
Renderer audioRenderer = new MediaCodecAudioRenderer(MediaCodecSelector.DEFAULT, null, true,
null, null, null, AudioManager.STREAM_ALARM);
renderers[0] = audioRenderer;
Handler handler = new Handler();
TrackSelector trackSelector = new DefaultTrackSelector(handler);
return ExoPlayerFactory.newInstance(renderers, trackSelector);
}
}
相關問題
- 1. Android - 通過揚聲器播放音頻
- 2. 通過android揚聲器播放音樂
- 3. Audiomanager - 只播放揚聲器揚聲器
- 4. 通過耳機播放音樂時播放揚聲器
- 5. 如何在vb.Net中通過外部揚聲器播放聲音?
- 6. MPMoviePlayerController拒絕通過iOS4中的揚聲器播放聲音
- 7. 如何通過呼叫接收器揚聲器播放AVSpeechSynthesizer?
- 8. 通過iPhone揚聲器強制播放音頻文件?
- 9. iPhone音頻播放:通過內部揚聲器強制?
- 10. 從麥克風播放音頻通過揚聲器
- 11. 如何通過揚聲器電話播放媒體
- 12. 音頻文件:僅通過一個揚聲器播放數據?
- 13. 如何在J2ME中通過揚聲器播放音頻
- 14. 如何通過手機揚聲器播放Alert.startAudio()?
- 15. 讓MediaPlayer和AudioManager通過耳機而不是揚聲器播放?
- 16. Windows Phone 8.1通過揚聲器播放音頻數據流?
- 17. 無法通過揚聲器播放視頻音頻 - iOS
- 18. 讓媒體播放器首先在右揚聲器上播放,然後在左揚聲器上播放
- 19. 在免提通話期間通過電話揚聲器播放聲音
- 20. iPhone,在通話時是否可以通過揚聲器播放聲音?
- 21. 通過iPhone麥克風插孔聽,但通過揚聲器播放?
- 22. PC揚聲器通過JavaScript?
- 23. 使用Java或Javascript播放BIOS聲音(使用PC揚聲器)
- 24. Exoplayer 2播放器未恢復播放
- 25. 同時播放2首歌曲,只能通過耳機和其他通過揚聲器播放
- 26. OSX:使用Core Audio檢測音頻是否通過揚聲器播放
- 27. 即使耳機插入,如何通過藍牙揚聲器播放音頻?
- 28. 我可以使用手機通過聽筒揚聲器播放音頻嗎?
- 29. 使用Android AudioTrack播放左右揚聲器聲音
- 30. Blackberry如何使用設備的揚聲器播放聲音(短[])?