3

我在使用 videoview(或 MediaPlayer)在同一活动中的多个 videoview 中播放 rtsp 流时遇到兼容性问题。

我在这里就这个问题提出了另一个问题,但现在我知道这不是我的代码负责,因为我在不同的手机上测试了相同的软件并且它可以工作。

查看 RTSP 设置的 logcat 信息消息我看到每部手机都有不同的 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上失败(见error here)。另一个有趣的是只有Lg使用RtspEngine,其他使用ARTSPConnection

有一种方法可以强制应用程序使用本机 stagefright(如果它存在于设备上)?

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

4

2 回答 2

3

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

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

于 2014-01-28T20:22:15.110 回答
1

可以查看设备cpu兼容性。建议你移植解码库,如vlc、ffmpeg、gstreamer。

于 2014-01-22T09:12:29.267 回答