首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android MusicPlayer使用Stagefright或opencore

Android MusicPlayer使用Stagefright或opencore
EN

Stack Overflow用户
提问于 2014-02-06 04:48:33
回答 2查看 1.1K关注 0票数 0

我读到,如果media.stagefright.enable-player被设置为true,那么设备就使用Stagefright。在我的设备的build.prop中我看到

代码语言:javascript
复制
media.stagefright.enable-player = false

当我在下面累了

代码语言:javascript
复制
MediaPlayer mp = new MediaPlayer();
mp.setDataSource(String.format("http://127.0.0.1:%d/", socketPort));
mp.prepare();
mp.start();

我承载了mediaplayer连接到的服务器套接字

代码语言:javascript
复制
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);

我得到的日志是

代码语言:javascript
复制
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 ?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-07 00:10:53

从您的日志中,我觉得Android的版本是Froyo 2.2.3,这可能是Stagefright成为默认版本之前的最后一个版本。播放器的选择取决于多个条件,例如它是file源还是http源还是rtsp源。

Froyo 2.2.3中,有两个键用于启用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" (Ref:http://androidxref.com/2.2.3/xref/frameworks/base/media/libmediaplayerservice/MediaPlayerService.cpp#750)的值。

http源代码的示例中,有一个不同的系统属性被选中,即"media.stagefright.enable-http"。在您的情况下,我觉得这是启用/设置为真,因此,Stagefright播放器被雇用。请将此设置为false以仅启用PV_Player

票数 1
EN

Stack Overflow用户

发布于 2014-02-06 15:02:03

这是国标的一个古老的道具,你用的是什么Android?我在代码中甚至在GB中都没有看到这一点.我可以想象的是,“media.stagefright. libstagefrigt.so false/true”意味着stagefright player是/不被使用的,这并不意味着libstagefrigt.so(使用Open的框架)被使用或不被使用。当我使用时,Open总是在使用(只有一些GB中的编解码器没有移植到OMX)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21594213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档