不同智能手机上的Videoview行为(与不同的stagefright)

时间:2014-01-21 11:50:55

标签: android android-mediaplayer android-videoview rtsp stagefright

我在同一活动中使用videoview(或MediaPlayer)在多个视频视图中播放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(如果它存在于设备上)?

应用程序如何管理此兼容性问题? 开发一个与某些品牌手机不兼容的应用程序是不合理的

2 个答案:

答案 0 :(得分:3)

LG完全有权用他们的引擎取代RTSP的AOSP实施。我现在没有LG设备来测试其性能和优势(或缺点)。无论如何,stagefright及其替代品都不是为支持多个并发活动实例而设计的。我从未见过允许超过4的设备。

幸运的是,使用1 GHz双核CPU(LG L9),你有足够的通用计算能力来解码四个270p的视频流,使用ffmpeg或gstreamer填充960 x 540屏幕。

答案 1 :(得分:1)

您可以检查设备的CPU兼容性。建议您移植解码库,如vlc,ffmpeg或gstreamer。