webview - 在 Android TV 上升级 Android WebView 后,不再播放 hls 264 视频

标签 webview ionic4 android-tv

将 Android WebView 升级到 80.0.3987.99 版本后,Android TV 不再在基于 WebView 的应用程序(ionic 4)上播放实时 HLS 视频(h264)。

操作系统:Android TV 9(仅限Android TV)
内核版本:4.9.113

重现步骤:

(1) 尝试在使用 WebView 80.0.3987.99 的 Android TV 设备上基于 WebView 的应用程序上打开 HLS h264 实时视频(m3u8 list )。您可以使用随附的 APK。

预期结果:未播放视频。

将 WebView 降级到次要版本(例如,75.0.03770.143)并重新启动应用程序,视频实际上播放没有问题。

APK下载测试:

https://bugs.chromium.org/p/chromium/issues/attachment?aid=433346&signed_aid=j3jgAQISOSoCW4DBQcRFXw==

登录 logcat:

2020-02-12 15:57:40.206 24233-24336/com.eninetworks.enitvtester I/cr_MediaCodecBridge: create MediaCodec video decoder, mime video/avc

2020-02-12 15:57:40.277 24233-24349/com.eninetworks.enitvtester I/OMXClient: IOmx service obtained

2020-02-12 15:57:40.373 24233-24348/com.eninetworks.enitvtester I/MediaCodec: MediaCodec will operate in async mode
2020-02-12 15:57:40.382 24233-24348/com.eninetworks.enitvtester D/SurfaceUtils: connecting to surface 0xd1a7f008, reason connectToSurface

2020-02-12 15:57:40.383 24233-24348/com.eninetworks.enitvtester I/MediaCodec: [OMX.amlogic.avc.decoder.awesome] setting surface generation to 24814593

2020-02-12 15:57:40.383 24233-24348/com.eninetworks.enitvtester D/SurfaceUtils: disconnecting from surface 0xd1a7f008, reason connectToSurface(reconnect)

2020-02-12 15:57:40.383 24233-24348/com.eninetworks.enitvtester D/SurfaceUtils: connecting to surface 0xd1a7f008, reason connectToSurface(reconnect)

2020-02-12 15:57:40.386 24233-24349/com.eninetworks.enitvtester I/AmAVUtils: AmAVUtils::getComponentRole isEncoder :0 mime:video/avc 

2020-02-12 15:57:40.386 24233-24349/com.eninetworks.enitvtester V/AVUtils: AVUtils::getComponentRole

2020-02-12 15:57:40.393 24233-24349/com.eninetworks.enitvtester E/ACodec: [OMX.amlogic.avc.decoder.awesome] setPortMode on output to DynamicANWBuffer failed w/ err -2147483648

2020-02-12 15:57:40.403 24233-24349/com.eninetworks.enitvtester I/AmAVUtils: AmAVUtils::isAudioExtendFormat input = video/avc


2020-02-12 15:57:40.470 24233-24349/com.eninetworks.enitvtester D/SurfaceUtils: disconnecting from surface 0xd1a7f008, reason setNativeWindowSizeFormatAndUsage

2020-02-12 15:57:40.470 24233-24349/com.eninetworks.enitvtester D/SurfaceUtils: connecting to surface 0xd1a7f008, reason setNativeWindowSizeFormatAndUsage

2020-02-12 15:57:40.470 24233-24349/com.eninetworks.enitvtester D/SurfaceUtils: set up nativeWindow 0xd1a7f008 for 1920x1080, color 0x11, rotation 0, usage 0x402b00

2020-02-12 15:57:40.471 24233-24349/com.eninetworks.enitvtester W/ACodec: [OMX.amlogic.avc.decoder.awesome] setting nBufferCountActual to 10 failed: -1010

2020-02-12 15:57:40.472 24233-24349/com.eninetworks.enitvtester W/ACodec: [OMX.amlogic.avc.decoder.awesome] setting nBufferCountActual to 9 failed: -1010

2020-02-12 15:57:40.473 24233-24349/com.eninetworks.enitvtester W/ACodec: [OMX.amlogic.avc.decoder.awesome] setting nBufferCountActual to 8 failed: -1010

2020-02-12 15:57:40.475 24233-24349/com.eninetworks.enitvtester W/ACodec: [OMX.amlogic.avc.decoder.awesome] setting nBufferCountActual to 7 failed: -1010

2020-02-12 15:57:40.475 24233-24349/com.eninetworks.enitvtester E/ACodec: Failed to allocate buffers after transitioning to IDLE state (error 0xfffffc0e)

2020-02-12 15:57:40.475 24233-24349/com.eninetworks.enitvtester E/ACodec: signalError(omxError 0x80001001, internalError -1010)

2020-02-12 15:57:40.478 24233-24348/com.eninetworks.enitvtester E/MediaCodec: Codec reported err 0xfffffc0e, actionCode 0, while in state 5

2020-02-12 15:57:40.478 24233-24348/com.eninetworks.enitvtester E/libc: Access denied finding property "media.metrics.enabled"

2020-02-12 15:57:40.492 24233-24349/com.eninetworks.enitvtester W/AHierarchicalStateMachine: Warning message AMessage(what = 'omxI') = {
      int32_t type = 0
      int32_t event = 0
      int32_t data1 = 0
      int32_t data2 = 1
    } unhandled in root state.

2020-02-12 15:57:40.506 24233-24348/com.eninetworks.enitvtester D/SurfaceUtils: disconnecting from surface 0xd1a7f008, reason disconnectFromSurface

**2020-02-12 15:57:40.518 24233-24336/com.eninetworks.enitvtester E/cr_MediaCodecBridge: Cannot start the media codec**

android.media.MediaCodec$CodecException: start failed
at android.media.MediaCodec.native_start(Native Method)
at android.media.MediaCodec.start(MediaCodec.java:2068)
at org.chromium.media.MediaCodecBridge.c(PG:8)
at org.chromium.media.MediaCodecBridgeBuilder.createVideoDecoder(PG:68)

2020-02-12 15:57:40.521 24233-24336/com.eninetworks.enitvtester W/cr_MediaCodecBridge: Releasing: OMX.amlogic.avc.decoder.awesome

2020-02-12 15:57:40.528 24233-24336/com.eninetworks.enitvtester W/cr_MediaCodecBridge: Codec released

2020-02-12 15:57:40.545 24233-24282/com.eninetworks.enitvtester D/AudioTrack: stop() called with 16940 frames delivered

2020-02-12 15:57:45.549 24233-24282/com.eninetworks.enitvtester E/libc: Access denied finding property "media.metrics.enabled"

2020-02-12 15:57:45.544 24233-24233/com.eninetworks.enitvtester W/AudioThread: type=1400 audit(0.0:48242): avc: denied { read } for name="u:object_r:media_prop:s0" dev="tmpfs" ino=2183 scontext=u:r:untrusted_app:s0:c47,c256,c512,c768 tcontext=u:object_r:media_prop:s0 tclass=file permissive=0

最佳答案

所以,我取得了一点点进步。 h.264 在 Android TV 上的最新 webview 有问题。它甚至有上一个。我玩过 ffmpeg,显然 h.265 主要 4.1 编码的 mp4 不会导致这个问题。对我来说,新编解码器仍然存在三个.js 纹理问题。尝试转换视频,也许它会给你带来好运和工作:)

关于webview - 在 Android TV 上升级 Android WebView 后,不再播放 hls 264 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60198316/

相关文章:

android - 在Android上使用WebView查看 map 并设置标记(图钉)

ios - 设置 WebView Delegate 后崩溃

html - 从 Swift 中的 html 页面读取数据

ionic-framework - 添加到构造函数后,Ionic 4 cordova-plugin-ftp 出现问题

android - 发生未处理的异常 : Project target does not exist

android - 更改 Android TV 应用程序 BrowseFragment 的 SearchView 默认图标?

Android TV 靠背。如何判断用户是否在 MainActivity 的标题导航上?

javascript - 在不重新加载页面的情况下更改 Android Webview 哈希

ios - Ionic 4应用程序在iOs 13上要求蓝牙许可

带有 2 个模块的 Android TV 应用,在 Google Play 中排除