2014-02-06 2 views
0

Я читал, что если media.stagefright.enable-player установлено true, тогда устройство использует Stagefright. В моем устройстве build.prop я вижуAndroid MusicPlayer использует Stagefright или opencore

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 ?

ответ

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" (Ref: http://androidxref.com/2.2.3/xref/frameworks/base/media/libmediaplayerservice/MediaPlayerService.cpp#750)

В вашем случае для http источника, существует другая система свойство, а именно проверяется, "media.stagefright.enable-http".. В вашем случае я чувствую, что это включено/установлено значение true и, следовательно, используется Stagefright. Установите это значение false, чтобы включить только PV_Player.

0

ИМХО древний проп от ГБ, что Android вы используете? Я не видел этого в использовании кода даже в GB ... Что я могу себе представить, так это то, что «media.stagefright.enable-player false/true» означает, что playerfright player/не используется, что не означает, что libstagefrigt .so (фреймворк, который использует Open MAX) используется или не используется. Когда я работал с GB libstagefright, поэтому Open MAX использовался всегда (только некоторые кодеки в GB не были перенесены в OMX).

+0

Итак, вы имеете в виду, что у GB есть OpenMax для кодеков, если да, могу ли я получить доступ к кодекам, вызвав openmax il apis из jni? – nmxprime

+0

Любые рекомендации по использованию openmax с stagefright из нашего приложения ndk? – nmxprime

+0

@ nmxprime..Yes 'GingerBread' имеет' OMX' для некоторых кодеков. Однако вы не можете получить доступ к компоненту автономно. Эта поддержка была представлена ​​в «JellyBean». Можете ли вы подтвердить, в какой версии Android вы работаете? – Ganesh

Смежные вопросы