我正在尝试在我的应用程序中实现画中画 完美进入画中画模式。
问题是进入PIP模式时没有调用重写方法onPictureInPictureModeChanged方法。
我的 onPictureInPictureModeChanged 方法显示错误
重写方法应该调用 super.onPictureInPictureModeChanged
我的 minSdk 24 和 targetSdk 33
private fun pictureInPictureMode(){
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
Log.d(TAG, "pictureInPictureMode: Supports PIP")
val aspectRatio = Rational(videoView.width, videoView.height)
pictureInPictureParamsBuilder!!.setAspectRatio(aspectRatio).build()
enterPictureInPictureMode(pictureInPictureParamsBuilder!!.build())
}
else{
Toast.makeText(this, "Your device doesn't supports PIP",
Toast.LENGTH_LONG).show()
}
}
override fun onPictureInPictureModeChanged(
isInPictureInPictureMode: Boolean,
newConfig: Configuration?
) {
super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
if (isInPictureInPictureMode){
Log.d(TAG, "onPictureInPictureModeChanged: Entered PIP")
pipButton.visibility = View.GONE
}
else{
Log.d(TAG, "onPictureInPictureModeChanged: Exited PIP")
pipButton.visibility = View.VISIBLE
}
}
进入PIP时不调用onPictureInPictureModeChanged方法 模式
在 AndroidManifest.xml 的 Activity 下添加以下内容
android:configChanges="keyboardHidden|orientation|screenSize|smallestScreenSize|screenLayout"