# VideoPlayer **Repository Path**: CodeWordDeity/VideoPlayer ## Basic Information - **Project Name**: VideoPlayer - **Description**: 基于MediaPlayer 解码和ExoPlayer 解码等多种解码方式,支持多种离线播放、在线播放、m3u8 格式等 - **Primary Language**: Android - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2018-07-19 - **Last Updated**: 2025-09-26 ## Categories & Tags **Categories**: android-modules **Tags**: None ## README # VideoPlayer #### 项目介绍 基于MediaPlayer 解码和ExoPlayer 解码等多种解码方式,支持多种离线播放、在线播放、m3u8 格式等 #### 使用说明 // String mp4 = "http://resources.kuaifa.tv/uploads/20180711/5f0f69f67f5a08d7cf10791639f6cb0b.mp4"; String mp4 = "http://resources.kuaifa.tv//upload/a/2018/0424/164623bc52f605.mp4"; String m3u8 = "http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8"; String url; Class decodeMedia; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Util.SET_FULL(this); qsVideoView = findViewById(R.id.qs); //进入全屏的模式 0横屏 1竖屏 2传感器自动横竖屏 3根据视频比例自动确定横竖屏 -1什么都不做 qsVideoView.enterFullMode = 3; qsVideoView.setPlayListener(new PlayListener() { @Override public void onStatus(int status) {//播放状态 Log.e(TAG, "onStatus: " + status); if (status == IVideoPlayer.STATE_AUTO_COMPLETE) play(mp4, AndroidMedia.class); } @Override//全屏/普通/浮窗 public void onMode(int mode) { } @Override public void onEvent(int what, Integer... extra) { Log.e(TAG, "onEvent: " + what + " ::::" + extra); } }); play(mp4, AndroidMedia.class); } private void play(String url, Class decodeMedia) { qsVideoView.release(); qsVideoView.setDecodeMedia(decodeMedia); qsVideoView.setUp(url); qsVideoView.setMute(true); qsVideoView.play(); this.url = url; this.decodeMedia = decodeMedia; } @Override public void onResume() { super.onResume(); if (flag) qsVideoView.play(); if (position > 0) { qsVideoView.seekTo(position); position = 0; } } boolean flag;//记录退出时播放状态 回来的时候继续播放 int position;//记录销毁时的进度 回来继续盖进度播放 @Override public void onPause() { super.onPause(); //暂停 flag = qsVideoView.isPlaying(); qsVideoView.pause(); } @Override public void onStop() { super.onStop(); } @Override public void onDestroy() { super.onDestroy();//销毁 qsVideoView.release(); } #### 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request 员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)