AndroidStudio编程解析m3u8链接可以试下Exoplayer

1,048 阅读1分钟

解析m3u8视频地址首先要配置一下Exoplayer环境 我的AndroidStudio版本为2021.2.1 Patch 1

打开Gradle Scripts-->build.grdle(.app)

14.png

在dependencies里面加上下面代码


implementation 'com.google.android.exoplayer:exoplayer:2.17.1'
implementation 'com.google.android.exoplayer:exoplayer-hls:2.17.1'

在buildTypes里面加入下面代码

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

如图

14.png

等待更新环境后开始正题了 在layout里面的activity_main.xml文件中创建StyledPlayerView控件

<com.google.android.exoplayer2.ui.StyledPlayerView
    android:id="@+id/playerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:show_buffering="when_playing"
    android:background="@color/black"
    />

最后在MainActivity.java中下面代码

//在class下定义
private StyledPlayerView mStyledPlayerView;
private ExoPlayer mExoPlayer;
private MediaItem mMediaItem;
String url="http://xxx.m3u8";
//下面的是onCreate里面的
mExoPlayer=new ExoPlayer.Builder(this).build();//创建一个播放器
mStyledPlayerView.setPlayer(mExoPlayer);//将播放器绑定到播放器视图上
mExoPlayer.setPlayWhenReady(true);//设置播放器在准备好后开始播放
mExoPlayer.setRepeatMode(ExoPlayer.REPEAT_MODE_ALL);//设置播放器重复播放
mMediaItem=new MediaItem.Builder()
        .setUri(url))
        .setMimeType(MimeTypes.APPLICATION_M3U8)
        .build();
mExoPlayer.setMediaItem(mMediaItem);//设置播放器播放的媒体
mExoPlayer.prepare();//准备播放器
mExoPlayer.play();//播放播放器