一、概述
ExoPlayer谷歌源码地址:https://github.com/google/ExoPlayer;ExoPlayer是构建在Android低水平媒体API之上的一个应用层媒体播放器。和Android内置的媒体播放器相比,ExoPlayer有许多优点。ExoPlayer支持内置的媒体播放器支持的所有格式外加自适应格式DASH和SmoothStreaming。ExoPlayer可以被高度定制和扩展以适应不同的使用场景。
二、使用
1.添加依赖
添加完整依赖
implementation 'com.google.android.exoplayer:exoplayer:2.X.X'
也可以根据需求添加依赖
implementation 'com.google.android.exoplayer:exoplayer-core:2.X.X'
implementation 'com.google.android.exoplayer:exoplayer-dash:2.X.X'
implementation 'com.google.android.exoplayer:exoplayer-ui:2.X.X'
整个ExoPlayer库包括5个子库,依赖了整个ExoPlayer库和依赖5个子库是等效的。
exoplayer-core:核心功能 (必要)
exoplayer-dash:支持DASH内容
exoplayer-hls:支持HLS内容
exoplayer-smoothstreaming:支持SmoothStreaming内容
exoplayer-ui:用于ExoPlayer的UI组件和相关的资源。
2.Xml中添加组件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<com.google.android.exoplayer2.ui.PlayerView
android:id="@+id/playerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
3.Java中实现播放
public class MainActivity extends AppCompatActivity {
private PlayerView playerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//找到播放组件
playerView = findViewById(R.id.playerView);
//设置播放器
SimpleExoPlayer player = new SimpleExoPlayer.Builder(this).build();
playerView.setPlayer(player);
//播放视频
String videoUri = "https://v-cdn.zjol.com.cn/276982.mp4";
// Build the media item.
MediaItem mediaItem = MediaItem.fromUri(videoUri);
// Set the media item to be played.
player.setMediaItem(mediaItem);
// Prepare the player.
player.prepare();
// Start the playback.
player.play();
}
}
三、总结
这里就简单的介绍下Exoplayer的简单使用,其余的一些高级用法,有空再整理下,有兴趣的也可以自己看看文档:https://exoplayer.dev/hello-world.html。demo仓库地址:https://github.com/stormdzh/TestExopLayer
参考
文档:https://exoplayer.dev/hello-world.html
测试视频地址:
https://v-cdn.zjol.com.cn/280443.mp4
https://v-cdn.zjol.com.cn/276982.mp4
https://v-cdn.zjol.com.cn/276984.mp4
https://v-cdn.zjol.com.cn/276985.mp4
http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4
https://media.w3.org/2010/05/sintel/trailer.mp4
网友评论