Android录像在html上无法显示画面的问题
发现问题
今天,客户反馈说,在 android app 上传的录像在后台 cms 上只有声音和进度,但是无法显示视频画面。
于是,我下载了这个.mp4
文件,在简介中发现这个文件的编码是 H.263
。而根据 h5 的文档,<video>
标签对于 mp4 仅支持 H.264
编码。
解决问题
由于客户使用的是第三方统一定制的手机,猜测是否和我们日常使用的手机是否有所不同。在测试中,一般调用 ActivityResultContracts.CaptureVideo()
返回的都是 H.264
编码的视频文件,唯独这款手机返回的是 H.263
,并且视频的质量十分低 。于是,猜测是视频质量导致的(原api中没有设置默认的录制质量)。
重写 ActivityResultContracts.CaptureVideo()
,添加对视频录制质量的限制,如下:
果不其然,这次返回的文件变成了 H.264
编码,在 <video>
标签上也能正常播放。