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..Yes
GingerBread
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)