一、 NuPlayer簡介
NuPlayer是安卓系統自帶的音視頻播放器,其名稱源自於「New」(新)和「Universal」(通用)的縮寫。在安卓4.1(API level 16)版本推出後,NuPlayer取代了OpenCore作為系統默認的音視頻播放器。
NuPlayer優化了系統對於媒體資源的使用,提高了視頻和音頻的性能和體驗。它具有多種解碼器和渲染器,支持多種媒體格式和協議,在視頻、音頻解碼、串流、播放器間通信等方面都有很強的能力。
二、 NuPlayer的特點
1.支持多種媒體格式和協議
NuPlayer支持多種常用媒體格式,如H.264, MPEG-4, H.263, Mp3等並支持HTTP,RTSP 和 UDT協議,方便進行多種輸入流管理。
2.優化的性能和體驗
NuPlayer對系統播放效率進行了優化,改善了視頻和音頻的運行效率,加強了用戶體驗。同時,NuPlayer還支持HLS、DASH、Http Smooth等協議,以提供更好的流暢度,快速的啟動以及媒體質量的提升。
3.易於拓展
NuPlayer與MediaPlayer和ExoPlayer有着相似的架構,易於擴展和定製。在Android系統中,NuPlayer是基於IOMX組件在C++層實現的,通過IOMX組件,NuPlayer支持硬件加速。同時,開發者可以通過添加新的用於解碼媒體的Codec管理器對其進行定製。
三、 NuPlayer的應用
NuPlayer廣泛應用於安卓智能手機、平板電腦等移動設備上,並被Google應用於其Pixel系列手機上的移動影像技術的發展。同時,不少Android應用中也使用了NuPlayer的代碼或依賴庫。
四、 關鍵代碼示例
1. 媒體播放器初始化
Uri uri = Uri.parse("http://www.example.com/sample.mp4"); try { MediaPlayer mediaPlayer = new MediaPlayer(); mediaPlayer.setDataSource(getApplicationContext(), uri); // 設置數據源 mediaPlayer.prepare(); // 給MediaPlayer準備資源 mediaPlayer.start(); // 開始播放 } catch (IOException e) { Log.e(TAG, "prepare() failed"); }
2. NuPlayer配置
private void configMediaFormat() { MediaFormat format = new MediaFormat(); format.setString(MediaFormat.KEY_MIME, "video/avc"); format.setInteger(MediaFormat.KEY_WIDTH, 1920); format.setInteger(MediaFormat.KEY_HEIGHT, 1080); format.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, size); IOMXBufferPool pool = IOMXBufferPool.create("OMX.null"); MediaCodec codec = MediaCodec.createByCodecName("OMX.test"); codec.configure(format, mSurface, null, 0); codec.start(); }
3. NuPlayer渲染器
public class MyRenderer implements SurfaceHolder.Callback, MediaCodec.Callback { private Surface mSurface; ... @Override public void surfaceCreated(SurfaceHolder holder) { mSurface = holder.getSurface(); ... } @Override public void onInputBufferAvailable(MediaCodec codec, int index) { ByteBuffer inputBuffer = codec.getInputBuffer(index); ... } @Override public void onOutputBufferAvailable(MediaCodec codec, int index, MediaCodec.BufferInfo info) { ByteBuffer outputBuffer = codec.getOutputBuffer(index); ... } }
五、 總結
NuPlayer是安卓系統默認的音視頻播放器,擁有着多種媒體解碼器和渲染器,支持多種格式和協議,具有優秀的性能和體驗。NuPlayer不僅被廣泛應用於安卓智能設備上,並且其代碼或依賴庫還常常出現在各種應用中。
原創文章,作者:VAOQU,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/333017.html