android-在不同智能手机上的Videoview行为(具有不同的stagefright)
作者:互联网
使用videoview(或MediaPlayer)在同一活动中的多个videoview中播放rtsp流时遇到兼容性问题.
我已经对here这个问题提出了另一个问题,但是现在我知道这不是我的代码负责,因为我在不同的手机上测试了相同的软件,并且可以正常工作.
查看用于RTSP设置的logcat Info消息,我发现每部手机都有不同的stagefright实现(android多媒体框架):
(A) I/RTSPEngine(147): User-Agent: Player/LG Player 1.0 for Android(stagefright alternative)
(B) I/ARTSPConnection(2252): User-Agent: stagefright/1.2 (Linux;Android 4.2.1)
(C) I/ARTSPConnection(10345): User-Agent: ALCATEL ONE TOUCH 997D-SVN/02001 (Linux;Android 4.1.1)
(D) W/ARTSPConnection(1948): User-Agent: User-Agent: Samsung GT-I9300 stagefright/Beyonce/1.1.9 (Linux;Android 4.3)
A is Lg l9 - android 4.1.2
B is Chinese jiayu g4 - Android 4.2.1
C is ALCATEL ONE TOUCH 997D - Android 4.1.1
D is Samsung galaxy S3 - Android 4.3
您可以在此处看到不同的android版本和不同的stagefright,但多个rtsp仅在Lg上失败(请参见错误here).
另一个有趣的事情是,只有Lg使用RtspEngine,其他使用ARTSPConnection
有一种方法可以强制应用程序使用本机stagefright(如果它存在于设备上)?
应用程序如何管理此兼容性问题?
开发与某些品牌手机不兼容的应用程序是不合理的
解决方法:
LG拥有使用其引擎替换RTSP的AOSP实现的完整权利.我目前没有LG设备可以测试其性能和优势(或劣势).无论如何,stagefright及其替代产品均未设计为支持多个并发活动实例.我从未见过允许超过4的设备.
幸运的是,使用1 GHz双核CPU(LG L9),您具有足够的通用计算能力,可以使用ffmpeg或gstreamer解码四个270p的视频流,以填充960 x 540屏幕.
标签:rtsp,android-mediaplayer,android-videoview,stagefright,android 来源: https://codeday.me/bug/20191030/1964152.html