2012-07-31 17 views
0

我想了解HTC Evo 3D 3D顯示器的工作原理;然而,代碼和HTCDev的教程對此沒有幫助。有人說,在頭的SEI FPA位覆蓋,通過手工給出了這樣的選擇:Android MediaPlayer如何通過查看SEI FPA來決定3D顯示?

public void surfaceChanged(SurfaceHolder surfaceholder, int i, int j, int k) { 
    holder = surfaceholder; 
    enableS3D(true, holder.getSurface()); // note SEI FPA flag in content 
              // overrides this 
} 

播放視頻代碼:

private void playVideo() { 
    release(); 
    fileName = "HTCDemo.mp4"; 
    try { 
     mediaPlayer = new MediaPlayer(); 
     final AssetFileDescriptor afd = getAssets().openFd(fileName); 
     mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), 
       afd.getLength()); 
     mediaPlayer.setDisplay(holder); 
     mediaPlayer.prepare(); 
     mediaPlayer.setOnPreparedListener(this); 
     mediaPlayer.setOnVideoSizeChangedListener(this); 
     mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    } catch (Exception e) { 
     Log.e(TAG, Log.getStackTraceString(e)); 
    } 
} 

在這一點上,我無法跟蹤這些它看起來是頭部中的SEI FPA位。我需要幫助來顯示必要的代碼部分。提前致謝。

回答

1

您是否需要在頭文件中解析SEI FPA位?這超出了這個API的範圍。如上所述,編解碼器解析此以啓用(並覆蓋)S3D設置。

在概述中,提到了如何使用第三方工具(如x264)將此位添加到現有內容。

如果這是您在運行時需要執行的操作,建議您查看x264的代碼以獲取解析文件頭的幫助。

+0

我希望顯示不被SEI FPA標誌覆蓋。換句話說,我想在不查看FPA的情況下啓用或禁用S3D設置。我假設SEI FPA標誌在第一段中在MediaPlayer編解碼器的編解碼器部分進行了解析。而且,我知道如何將這一點添加到視頻中,但我想使用直播流,這使得SEI FPA標誌設置變得不可能。 – peagasus 2012-07-31 20:26:00