因此,我正在研究一个闹钟应用程序,并且当我在设备中有耳机插孔时,使用外接扬声器来使用扬声器电话时遇到了麻烦。我发现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. 通过耳机播放音乐时播放扬声器
- 2. MPMoviePlayerController拒绝通过iOS4中的扬声器播放声音
- 3. 如何通过呼叫接收器扬声器播放AVSpeechSynthesizer?
- 4. 通过iPhone扬声器强制播放音频文件?
- 5. iPhone音频播放:通过内部扬声器强制?
- 6. 从麦克风播放音频通过扬声器
- 7. 如何通过扬声器电话播放媒体
- 8. 音频文件:仅通过一个扬声器播放数据?
- 9. 如何通过手机扬声器播放Alert.startAudio()?
- 10. 无法通过扬声器播放视频音频 - iOS
- 11. Windows Phone 8.1通过扬声器播放音频数据流?
- 12. 在免提通话期间通过电话扬声器播放声音
- 13. PC扬声器通过JavaScript?
- 14. 使用Java或Javascript播放BIOS声音(使用PC扬声器)
- 15. 同时播放2首歌曲,只能通过耳机和其他通过扬声器播放
- 16. Exoplayer 2播放器未恢复播放
- 17. OSX:使用Core Audio检测音频是否通过扬声器播放
- 18. 我可以使用手机通过听筒扬声器播放音频吗?
- 19. 即使耳机插入,如何通过蓝牙扬声器播放音频?
- 20. Blackberry如何使用设备的扬声器播放声音(短[])?
- 21. 使用Android AudioTrack播放左右扬声器声音
- 22. AudioStreamer从耳机扬声器播放而不是iPhone底部扬声器
- 23. 设置iPhone通过扬声器开始播放,但允许耳机覆盖
- 24. 如何在不同的扬声器上播放声音?
- 25. 播放声音的内置扬声器,而在Android中
- 26. 在手机内置扬声器上播放声音? (模拟phonecall)
- 27. 通过VB.net更改扬声器配置
- 28. 通过AppleScript的AirPlay扬声器
- 29. 为了让音频能够通过Arduino通过PC扬声器播放,我需要添加些什么?
- 30. iOS快速播放音频到多个蓝牙扬声器