一、 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-hant/n/333017.html
微信掃一掃
支付寶掃一掃