Android webview播放视频全屏
时间: 2023-10-22 10:03:44 浏览: 140
Android WebView播放视频(包括全屏播放)
5星 · 资源好评率100%
WebView 播放视频的全屏功能一般都是通过 Android 的横屏实现的,具体实现步骤如下:
1. 配置 AndroidManifest.xml 文件,启用横屏模式:
```
<activity
android:name=".MainActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="sensorLandscape"
android:theme="@style/AppTheme.NoActionBar.Fullscreen" />
```
其中,`android:configChanges="orientation|screenSize"` 表示屏幕旋转和尺寸变化时不重新创建 Activity,`android:screenOrientation="sensorLandscape"` 表示允许横向旋转屏幕,`android:theme="@style/AppTheme.NoActionBar.Fullscreen"` 表示使用全屏主题。
2. 在布局文件中添加 WebView:
```
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
3. 在 Activity 中实现横屏逻辑:
```
class MainActivity : AppCompatActivity() {
private lateinit var webView: WebView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE // 启用横屏模式
setContentView(R.layout.activity_main)
webView = findViewById(R.id.webView)
webView.settings.javaScriptEnabled = true
webView.settings.pluginState = WebSettings.PluginState.ON
webView.settings.allowFileAccess = true
webView.webChromeClient = object : WebChromeClient() {
override fun onShowCustomView(view: View?, callback: CustomViewCallback?) {
super.onShowCustomView(view, callback)
if (view is FrameLayout) {
view.layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
setContentView(view)
}
}
override fun onHideCustomView() {
super.onHideCustomView()
setContentView(webView)
}
}
webView.loadUrl("https://www.example.com/video.html")
}
override fun onBackPressed() {
if (webView.canGoBack()) {
webView.goBack()
} else {
super.onBackPressed()
}
}
override fun onDestroy() {
super.onDestroy()
webView.loadUrl("about:blank")
webView.stopLoading()
webView.webChromeClient = null
webView.destroy()
}
}
```
其中,onShowCustomView 方法会在 WebView 中播放视频时调用,onHideCustomView 方法会在视频播放结束后调用。在 onShowCustomView 方法中,我们将 WebView 的布局替换为全屏的视频布局,然后在 onHideCustomView 方法中将布局替换回来。
需要注意的是,在 onDestroy 方法中需要将 WebView 停止加载并销毁,以避免 WebView 内存泄漏的问题。
以上就是 Android WebView 播放视频全屏的实现方法。
阅读全文