播放视频时禁用 Android 的 VideoView requestAudioFocus? [英] Disable Android's VideoView requestAudioFocus when playing a video?

查看:39
本文介绍了播放视频时禁用 Android 的 VideoView requestAudioFocus?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在构建一个可以录制和播放视频的应用.我希望在不影响背景音乐播放的情况下这样做,即如果我开始播放视频,我不想暂停其他应用程序的音频.但是,在 Lollipop 上,当调用私有方法 VideoView.openVideo() 时,Android 的 VideoView 类会自动请求音频焦点:

I'm building an app that records and plays back video. I would like to do so without affecting background music playback, i.e. if I begin playing a video, I do not want to pause other apps' audio. However, on Lollipop, Android's VideoView class automatically requests audio focus when the private method VideoView.openVideo() is called:

AudioManager am = (AudioManager) super.getSystemService(name);
am.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);

有关如何解决此问题的任何建议?

Any suggestions on how to get around this?

推荐答案

从 Android SDK 26 开始,您可能想要使用 VideoView

Starting with Android SDK 26 you may want to use VideoView and

if(Build.VERSION.SDK_INT >= Build.Version_CODES.O){
     //set this BEFORE start playback
     videoView.setAudioFocusRequest(AudioManager.AUDIOFOCUS_NONE)
}

对于旧版本,这里描述了一种解决方法:https://stackoverflow.com/a/31569930/993439

For older version, there's a workaround described here: https://stackoverflow.com/a/31569930/993439

基本上,复制VideoView的源代码并取消注释以下几行

Basically, copy source code of VideoView and uncomment following lines

AudioManager am = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
am.requestAudioFocus(null, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);

这篇关于播放视频时禁用 Android 的 VideoView requestAudioFocus?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆