最近公司在做视频点播与直播,其中涉及到了视频播放问题.最后我们选择了ExoPlayer.为了方便使用我将ExoPlayer进行了一次简单封装,即ExoPlayerView,并进行了开源.项目地址:
https://github.com/JarvanMo/E...
https://git.oschina.net/jarva...

欢迎关注,欢迎指点.

build.gradle 文件中加入下面语句即可引用ExoPlayerView:

compile 'com.jarvanmo:exoplayerview:0.0.1'

ExoPlayerView 可以直接播放一像常用视频, 比如说 mp4,m3u8等等,也可以用于直播.使用起来也很简单.
你需要在你的布局文件里面做如下声明:


    <com.jarvanmo.exoplayerview.ui.ExoVideoView
        android:id="@+id/videoView"
        android:layout_width="match_parent"
        android:layout_height="300dp"
        app:useController="true"
        app:resizeMode="fit"
        />
        

ExoPlayerView 提供了 3  视频适应模式: fit , fit_width , fit_height
以及 none.

播放代码如下:

   videoView.play(mediaSource);

可以提供一个显示名字:

 mediaSource.setDisplayName("LuYu YouYue");

或者;

 videoView.setDisplayName("LuYu YouYue");

也有一些监听器供你使用 :


        videoView.setBackListener(new ExoVideoPlaybackControlView.ExoClickListener() {
            @Override
            public void onClick(View view, boolean isPortrait) {
                if(isPortrait){
                    finish();
                }else {
                    videoView.changeOrientation();
                }
            }
        });
        videoView.setFullScreenListener(new ExoVideoPlaybackControlView.ExoClickListener() {
            @Override
            public void onClick(View view, boolean isPortrait) {
                videoView.changeOrientation();
            }
        });

也提供了横屏时在控制条添加自定义view:

       videoView.addViewToControllerWhenLandscape(view);

其中,view会添加到FrameLayout中.

注意:changeOrientation() 只会影响控制控件的样式,不会做任何旋转操作.
ExoPlayerView 也支持手势操作, 比如说左滑调亮度,右滑调音量,也可以快近或后退.
如果你的target SDK version 是在23或以上, 不要忘记申请权限:

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>

468122151
48 声望2 粉丝

安桌程序猿