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> 标签上也能正常播放。

发表评论


*