我读过如果media.stagefright.enable-player
设置为true
,那么设备会使用Stagefright
。
在我的设备build.prop
中,我看到了
media.stagefright.enable-player = false
当我在下面累了
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(String.format("http://127.0.0.1:%d/", socketPort));
mp.prepare();
mp.start();
我托管了媒体播放器连接的服务器套接字
ServerSocket serverSocket = null;
try {
serverSocket = new ServerSocket(0);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
socketPort = serverSocket.getLocalPort();
Socket socket = null;
try {
socket = serverSocket.accept();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
InputStream is = null;
try {
is = socket.getInputStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
byte [] temp = new byte [1024];
int bsize = -1;
while(bsize <= 0) {
try {
bsize = is.read(temp);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
final String readData = new String(temp);
Log.e("readDta",readData);
我得到的日志是
11-22 15:06:56.656: E/readDta(8737): GET / HTTP/1.111-22 15:06:56.656: E/readDta(8737): Host: 127.0.0.111-22 15:06:56.656: E/readDta(8737): User-Agent: stagefright/1.1 (Linux;Android 2.3.6)
现在我的疑问是,它如何显示User-Agent: stagefright/1.1
虽然它在media.stagefright.enable-player = false
中设置为build.prop
?
如果不是确定使用哪种方法,我如何检测是否opencore or stagefright ?
答案 0 :(得分:1)
从您的日志中,我认为Android
的版本是Froyo 2.2.3
,这可能是Stagefright
成为默认版之前的最后一个版本之一。玩家的选择取决于多种条件,例如它是file
来源还是http
来源还是rtsp
来源。
在Froyo 2.2.3
中,有2个用于启用Stagefright
播放器的键和一个构建标志。要使用Stagefright
播放器进行正常播放,您需要使用BUILD_WITH_FULL_STAGEFRIGHT
构建框架代码,如下所示:http://androidxref.com/2.2.3/xref/frameworks/base/media/libmediaplayerservice/MediaPlayerService.cpp#670
getDefaultPlayer
,并且在定义上述宏的情况下,它会尝试检查系统属性"media.stagefright.enable-player"
的值(参考:http://androidxref.com/2.2.3/xref/frameworks/base/media/libmediaplayerservice/MediaPlayerService.cpp#750)
对于http
来源,您可以检查不同的系统属性,即"media.stagefright.enable-http"
。在你的情况下,我觉得这是启用/设置为true,因此,Stagefright
播放器正在使用。请将其设置为false
以仅启用PV_Player
。
答案 1 :(得分:0)
恕我直言,这是GB的古老道具,您使用的是什么Android?即使在GB中,我也没有在代码中看到这个......我能想象的是“media.stagefright.enable-player false / true”意味着stagefright播放器是/不使用什么并不意味着libstagefrigt是否使用.so(使用Open MAX的框架)。当我使用GB libstagefright时,Open MAX一直在使用(只有GB中的一些编解码器没有移植到OMX)。