最近产品提了一个紧急需求:webview加载的URL,需要支持视频播放。

为了快速完成需求,功能实现上直接使用系统自带播放器播放视频。由于是自带播放器,需要进行兼容性测试,过程发现了不少问题,这里分享一下:

1、播放视屏的时候,程序闪退——Android7.0以上;
2、点击全屏播放无效——Android5.0以下版本;
3、点击全屏播放,界面消失只有声音——Android5.0;
4、视屏播放home切换到后台/多应用程序切换,仍继续播放——个别机型:红米Note3(Android5.0.2)
5、音量键无法调整声音;
6、视屏声音与游戏声音重叠——共用声道
7、打入游戏里面,视屏只有声音没有画面——游戏关闭了硬件加速(硬件加速的级别)

备注:
1、总结一下,简单的视频播放兼容性关注点:播放、全屏/非全屏切换、声音调节、前后台切换
2、需求只要求支持特定源的视频,故具体支持播放的视频格式不考虑;

Android视屏播放兼容性问题分享的更多相关文章

  1. Android中使用SurfaceView+MediaPlayer+自定义的MediaController实现自定义的视屏播放器

    效果图如下: (PS本来是要给大家穿gif动态图的,无奈太大了,没法上传) 功能实现:暂停,播放,快进,快退,全屏,退出全屏,等基本功能 实现的思路: 在主布局中放置一个SurfaceView,在Su ...

  2. h5-自定义视屏播放器

    1.html代码 <h3 class="playerTitle">视屏播放器</h3> <div class="player"&g ...

  3. Java利用VLC开发简易视屏播放器

    1.环境配置 (1)下载VLC  VlC官网http://www.videolan.org/    各个版本的下载地址http://download.videolan.org/pub/videolan ...

  4. iOS:简易的音视屏播放框架XYQPlayer

    一.前缀 一直都想好好学学音视频这方面的知识,抽了几个周末参考一些资料,尝试着写了一个简易的音视频播放框架,支持音视频播放.视频截图.音乐缓存,其实吧,也就是尽可能的封装罢了,方便以后自己使用.目前只 ...

  5. django-网页视屏播放

    基本都基于第三方: -cc视频 -播放免费视频 -收费视频 -需要做认证,cc视频会给你发消息,你返回,携带数据 -在前端页面中添加响应的视屏框的代码 -功能实现,有相关接口文档,配置即可

  6. 加入ffmpeg播放视屏

    下面的字反了..,另外没声音 2018-4-28 前段时间已经做的差不多了,音频的pack取出来用openAL播放,并实现了视屏同步播放,并且支持unity 现在的问题就是支持大分辨率视屏播放的问题, ...

  7. opencv视屏流嵌入wxpython框架

    前几篇博客分享搭建人脸识别与情绪判断的环境和源码,但是没有UI,界面很难看,一打开就是opencv弹出的一个视屏框.处女座的我看着非常难受,于是决定做一个UI,稍微规矩好看一点,再怎么说,这样的话也算 ...

  8. vue video全屏播放

    需求: 1.视频为长方形,页面初始化打开为横屏全屏播放视频. 2.微信不支持自动播放,故自动播放需求删除. 方法: 1.vue-video-player插件 因需求较简单,仅要求播放本地一个视频,故未 ...

  9. android中VideoView播放sd卡上面的视频

    (1)videoView组件只支持MP4和3gp格式的视屏播放,如果想播放其它视屏格式的文件,还得开发能够播放的视屏播放器 (2)videoView组件功能比较单一,如果想开发功能丰富的播放器,还得重 ...

随机推荐

  1. Python--Click

    Click Click 是 Flask 的开发团队 Pallets 的另一款开源项目,它是用于快速创建命令行的第三方模块. 我们知道,Python 内置了一个 Argparse 的标准库用于创建命令行 ...

  2. Pycharm 连接Linux 远程开发

    Pycharm 连接Linux 远程开发 在Liunx上安装python3.6(Ubuntu16) 下载Python-3.6.4.tgz 解压 tar -xzvf Python-3.6.4.tgz 进 ...

  3. [Leetcode]827.使用回溯+标记解决最大人工岛问题

    在二维地图上, 0代表海洋, 1代表陆地,我们最多只能将一格 0 海洋变成 1变成陆地. 进行填海之后,地图上最大的岛屿面积是多少?(上.下.左.右四个方向相连的 1 可形成岛屿) 示例 1: 输入: ...

  4. POJ 2909

    #include<iostream> #include<stdio.h> #define M 35000 #include<math.h> #define N 38 ...

  5. 配置redis

    配置Redis 配置相关redis.conf bind 127.0.0.1                                                 注释掉 否则其它远程计算机无 ...

  6. oracle10g和oracle11g导入导出数据区别

    其中flxuser为用户名,flxuser为密码,file值为导入到数据库中的备份文件. oracle10g和oracle11g导入导出数据的命令方式大有不同: oracle10g导入数据: imp  ...

  7. 【Java基本功】一文读懂String及其包装类的实现原理

    String作为Java中最常用的引用类型,相对来说基本上都比较熟悉,无论在平时的编码过程中还是在笔试面试中,String都很受到青睐,然而,在使用String过程中,又有较多需要注意的细节之处. S ...

  8. 实验吧 这个看起来有点简单!&渗透测试工具sqlmap基础教程

    题目地址:http://ctf5.shiyanbar.com/8/index.php?id=1 下载sqlmap,拖到python安装文件夹下面,在桌面创建sqlmap的cmd快捷方式,都不赘述. 教 ...

  9. [JZOJ5970] Space

    Description 在一个四维空间中,给 \(4\) 个 \(n\) 的排列 \(A,B,C,D\),对于点 \((x,y,z,w)\) ,到点 \((A_x,B_y,C_z,D_w)\) 的花费 ...

  10. datatable删除行之datatable.Rows[i].Delete()。标记之后行没有了

    使用Delete()之后行消失了 先在for循环外加上dt.AcceptChanges(); 删除时在dt.AcceptChanges();