0

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 = falsebuild.prop

どちらが使用されているかを判断する方法ではない場合、どのように検出できますかopencore or stagefright ?

4

2 に答える 2

1

Androidあなたのログから、のバージョンがデフォルトになるFroyo 2.2.3前のおそらく最後のバージョンの 1 つだと思いStagefrightます。プレーヤーの選択は、fileソースかhttpソースかrtspソースかなど、複数の条件に依存します。

には、プレーヤーとビルド フラグFroyo 2.2.3を有効にするための 2 つのキーがあります。Stagefright通常の再生でプレーヤーを使用できるようにするには、次のようにフレームワーク コードをビルドStagefrightする必要がありBUILD_WITH_FULL_STAGEFRIGHTます。

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場合のみに設定してください。

于 2014-02-07T00:10:53.643 に答える
0

私見ですが、これは GB の古い小道具ですが、どの Android を使用していますか? GBでもコードでの使用法ではこれを見ませんでした...私が想像できるのは、「media.stagefright.enable-player false/true」は、stagefrightプレーヤーが使用されている/使用されていないことを意味し、libstagefrigtを意味しないことを意味します.so (Open MAX を使用するフレームワーク) が使用されているか、使用されていません。私が GB libstagefright で作業していたときは、常に Open MAX を使用していました (GB の一部のコーデックのみが OMX に移植されていませんでした)。

于 2014-02-06T15:02:03.140 に答える