Android MusicPlayer使用Stagefright或opencore
我了解到,如果Android MusicPlayer使用Stagefright或opencore,android,android-mediaplayer,stagefright,opencore,Android,Android Mediaplayer,Stagefright,Opencore,我了解到,如果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.prepa
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();
我托管了一个mediaplayer连接的服务器套接字
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);
现在我的疑问是,尽管它在build.prop
中设置了media.stagefright.enable-player=false
,但它如何向我显示User-Agent:stagefright/1.1
如果这不是一种确定使用哪种方式的方法,我如何检测是
opencore还是stagefright?
我想知道这是GB的古老道具,你在用什么Android?我没有看到这在使用中的代码,甚至在GB。。。我能想象的是,“media.stagefright.enable-player false/true”意味着stagefright播放器被使用/未被使用,这并不意味着libstagefrigt.so(使用openmax的框架)被使用或未被使用。当我使用GB libstagefright时,Open MAX一直在使用(只有GB中的一些编解码器没有移植到OMX)。从您的日志中,我觉得Android的版本是Froyo 2.2.3
,这可能是StageFroy
成为默认版本之前的最后一个版本。播放器的选择取决于多种条件,例如它是文件
源还是http
源还是rtsp
源
在Froyo 2.2.3
中,有两个键用于启用Stagefright
播放器和一个构建标志。要启用Stagefright
player进行正常播放,需要使用build\u with\u FULL\u Stagefright
构建框架代码,如下所示:
对于多个条件调用getDefaultPlayer
,如果定义了上述宏,它将尝试检查系统属性“media.stagefright.enable player”
(参考:)
对于
http
source,有一个不同的系统属性被选中,即,“media.stagefright.enable http”
。在你的情况下,我觉得这是启用/设置为真的,因此,Stagefright
player正在使用。请将此设置为false
以仅启用PV_Player
。那么,您的意思是GB有OpenMax用于编解码器,如果有,我可以从jni调用OpenMax il API来访问编解码器吗?关于如何从ndk应用程序使用OpenMax和stagefright的任何指导?@nmxprime..YesGingerBread
有OMX
用于某些编解码器。但是,您不能以独立方式访问该组件。这种支持是在JellyBean
中引入的。你能确认你正在使用哪个版本的android吗?
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)