Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
NotesChapter
GSYVideoPlayer
提交
28425772
G
GSYVideoPlayer
项目概览
NotesChapter
/
GSYVideoPlayer
与 Fork 源项目一致
从无法访问的项目Fork
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
GSYVideoPlayer
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
28425772
编写于
6月 20, 2018
作者:
G
guoshuyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
* ijkPlayer的ex_so增加avi支持
* update ExoPlayer to 2.8.1 * ExoPlayer模式的问题修复
上级
f7a41536
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
61 addition
and
10 deletion
+61
-10
README.md
README.md
+7
-0
app/src/main/java/com/example/gsyvideoplayer/DetailPlayer.java
...rc/main/java/com/example/gsyvideoplayer/DetailPlayer.java
+1
-0
app/src/main/java/com/example/gsyvideoplayer/GSYApplication.java
.../main/java/com/example/gsyvideoplayer/GSYApplication.java
+1
-1
app/src/main/java/com/example/gsyvideoplayer/exo/GSYExoPlayerManager.java
...a/com/example/gsyvideoplayer/exo/GSYExoPlayerManager.java
+4
-0
dependencies.gradle
dependencies.gradle
+1
-1
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoBaseManager.java
...in/java/com/shuyu/gsyvideoplayer/GSYVideoBaseManager.java
+10
-0
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/player/Exo2PlayerManager.java
...va/com/shuyu/gsyvideoplayer/player/Exo2PlayerManager.java
+4
-0
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/player/IPlayerManager.java
.../java/com/shuyu/gsyvideoplayer/player/IPlayerManager.java
+6
-0
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/player/IjkPlayerManager.java
...ava/com/shuyu/gsyvideoplayer/player/IjkPlayerManager.java
+6
-0
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/player/SystemPlayerManager.java
.../com/shuyu/gsyvideoplayer/player/SystemPlayerManager.java
+4
-0
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYVideoView.java
...ava/com/shuyu/gsyvideoplayer/video/base/GSYVideoView.java
+10
-8
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYVideoViewBridge.java
...m/shuyu/gsyvideoplayer/video/base/GSYVideoViewBridge.java
+6
-0
module-lite-more.sh
module-lite-more.sh
+1
-0
未找到文件。
README.md
浏览文件 @
28425772
...
...
@@ -127,6 +127,13 @@ IJK编码格式|**[--- 项目支持视频格式(如果遇上黑屏,没声音
## 五、近期版本
### 5.0.1(2018-xx-xx 未发布)
*
Update ListGSYVideoPlayer
*
ijkPlayer的ex_so增加avi支持
*
update ExoPlayer to 2.8.1
*
ExoPlayer模式的问题修复
### 5.0.0-beta(2018-05-24)
*
调整cache机制,抽离cache管理器。
*
update ExoPlayer to 2.8.0,全面针对ExoPlayer进行优化
...
...
app/src/main/java/com/example/gsyvideoplayer/DetailPlayer.java
浏览文件 @
28425772
...
...
@@ -239,6 +239,7 @@ public class DetailPlayer extends AppCompatActivity {
//String url = "ijkhttphook:https://res.exexm.com/cw_145225549855002";
String
url
=
"http://7xjmzj.com1.z0.glb.clouddn.com/20171026175005_JObCxCE2.mp4"
;
//String url = "http://223.110.243.138/PLTV/2510088/224/3221227177/index.m3u8";
//String url = "http://qiniu.carmmi.com/image/132451525666042.mp4";
//String url = "http://ucp.wn.sunmath.cn/file-upload/gYQJHxK9iNQKJeWyS/V80418-103803.mp4?rc_uid=7sCFCGoaF2iTc9vH9&rc_token=prJK-xGutKmy2LDQO-OZASjob0o1u_s3e5SgMHmgjtn";
//String url = "http://7xse1z.com1.z0.glb.clouddn.com/1491813192";
...
...
app/src/main/java/com/example/gsyvideoplayer/GSYApplication.java
浏览文件 @
28425772
...
...
@@ -29,7 +29,7 @@ public class GSYApplication extends MultiDexApplication {
//GSYVideoType.enableMediaCodecTexture();
//GSYVideoManager.instance().setVideoType(this, GSYVideoType.IJKEXOPLAYER); //EXO 1 播放内核,弃用
//
GSYVideoManager.instance().setVideoType(this, GSYVideoType.IJKEXOPLAYER2); //EXO 2 播放内核
GSYVideoManager
.
instance
().
setVideoType
(
this
,
GSYVideoType
.
IJKEXOPLAYER2
);
//EXO 2 播放内核
//GSYVideoManager.instance().setVideoType(this, GSYVideoType.SYSTEMPLAYER); //系统播放器
//GSYVideoType.setShowType(GSYVideoType.SCREEN_MATCH_FULL);
...
...
app/src/main/java/com/example/gsyvideoplayer/exo/GSYExoPlayerManager.java
浏览文件 @
28425772
...
...
@@ -228,4 +228,8 @@ public class GSYExoPlayerManager implements IPlayerManager {
return
1
;
}
@Override
public
boolean
isSurfaceSupportLockCanvas
()
{
return
false
;
}
}
dependencies.gradle
浏览文件 @
28425772
...
...
@@ -31,7 +31,7 @@ ext {
gsyVideoVersion
=
'5.0.0-beta'
exo_player2
=
'2.8.
0
'
exo_player2
=
'2.8.
1
'
permissionsdispatcher
=
'3.2.0'
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/GSYVideoBaseManager.java
浏览文件 @
28425772
package
com.shuyu.gsyvideoplayer
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.media.MediaPlayer
;
import
android.os.Handler
;
import
android.os.HandlerThread
;
...
...
@@ -533,6 +534,15 @@ public abstract class GSYVideoBaseManager implements IMediaPlayer.OnPreparedList
return
IMediaPlayer
.
MEDIA_INFO_VIDEO_ROTATION_CHANGED
;
}
@Override
public
boolean
isSurfaceSupportLockCanvas
()
{
if
(
playerManager
!=
null
)
{
return
playerManager
.
isSurfaceSupportLockCanvas
();
}
return
false
;
}
protected
void
sendMessage
(
Message
message
)
{
mMediaHandler
.
sendMessage
(
message
);
}
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/player/Exo2PlayerManager.java
浏览文件 @
28425772
...
...
@@ -227,4 +227,8 @@ public class Exo2PlayerManager implements IPlayerManager {
return
1
;
}
@Override
public
boolean
isSurfaceSupportLockCanvas
()
{
return
false
;
}
}
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/player/IPlayerManager.java
浏览文件 @
28425772
...
...
@@ -63,6 +63,12 @@ public interface IPlayerManager {
*/
void
setSpeedPlaying
(
float
speed
,
boolean
soundTouch
);
/**
* Surface是否支持外部lockCanvas,来自定义暂停时的绘制画面
* exoplayer目前不支持,因为外部lock后,切换surface会导致异常
*/
boolean
isSurfaceSupportLockCanvas
();
void
setSpeed
(
float
speed
,
boolean
soundTouch
);
void
start
();
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/player/IjkPlayerManager.java
浏览文件 @
28425772
...
...
@@ -272,6 +272,12 @@ public class IjkPlayerManager implements IPlayerManager {
return
1
;
}
@Override
public
boolean
isSurfaceSupportLockCanvas
()
{
return
true
;
}
private
void
initIJKOption
(
IjkMediaPlayer
ijkMediaPlayer
,
List
<
VideoOptionModel
>
optionModelList
)
{
if
(
optionModelList
!=
null
&&
optionModelList
.
size
()
>
0
)
{
for
(
VideoOptionModel
videoOptionModel
:
optionModelList
)
{
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/player/SystemPlayerManager.java
浏览文件 @
28425772
...
...
@@ -209,6 +209,10 @@ public class SystemPlayerManager implements IPlayerManager {
return
1
;
}
@Override
public
boolean
isSurfaceSupportLockCanvas
()
{
return
false
;
}
private
void
setSpeed
(
float
speed
)
{
if
(
release
)
{
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYVideoView.java
浏览文件 @
28425772
...
...
@@ -177,15 +177,17 @@ public abstract class GSYVideoView extends GSYTextureRenderView implements GSYMe
if
(
mCurrentState
==
CURRENT_STATE_PAUSE
&&
mFullPauseBitmap
!=
null
&&
!
mFullPauseBitmap
.
isRecycled
()
&&
mShowPauseCover
&&
mSurface
!=
null
&&
mSurface
.
isValid
())
{
try
{
RectF
rectF
=
new
RectF
(
0
,
0
,
mTextureView
.
getWidth
(),
mTextureView
.
getHeight
());
Canvas
canvas
=
mSurface
.
lockCanvas
(
new
Rect
(
0
,
0
,
mTextureView
.
getWidth
(),
mTextureView
.
getHeight
()));
if
(
canvas
!=
null
)
{
canvas
.
drawBitmap
(
mFullPauseBitmap
,
null
,
rectF
,
null
);
mSurface
.
unlockCanvasAndPost
(
canvas
);
if
(
getGSYVideoManager
().
isSurfaceSupportLockCanvas
())
{
try
{
RectF
rectF
=
new
RectF
(
0
,
0
,
mTextureView
.
getWidth
(),
mTextureView
.
getHeight
());
Canvas
canvas
=
mSurface
.
lockCanvas
(
new
Rect
(
0
,
0
,
mTextureView
.
getWidth
(),
mTextureView
.
getHeight
()));
if
(
canvas
!=
null
)
{
canvas
.
drawBitmap
(
mFullPauseBitmap
,
null
,
rectF
,
null
);
mSurface
.
unlockCanvasAndPost
(
canvas
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/video/base/GSYVideoViewBridge.java
浏览文件 @
28425772
...
...
@@ -145,4 +145,10 @@ public interface GSYVideoViewBridge {
int
getVideoSarNum
();
int
getVideoSarDen
();
/**
* Surface是否支持外部lockCanvas,来自定义暂停时的绘制画面
* exoplayer目前不支持,因为外部lock后,切换surface会导致异常
*/
boolean
isSurfaceSupportLockCanvas
();
}
module-lite-more.sh
浏览文件 @
28425772
...
...
@@ -110,6 +110,7 @@ export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=webm_dash_mani
export
COMMON_FF_CFG_FLAGS
=
"
$COMMON_FF_CFG_FLAGS
--enable-demuxer=mpeg4"
export
COMMON_FF_CFG_FLAGS
=
"
$COMMON_FF_CFG_FLAGS
--enable-demuxer=rtsp"
export
COMMON_FF_CFG_FLAGS
=
"
$COMMON_FF_CFG_FLAGS
--enable-demuxer=mjpeg"
export
COMMON_FF_CFG_FLAGS
=
"
$COMMON_FF_CFG_FLAGS
--enable-demuxer=avi"
# ./configure --list-parsers
export
COMMON_FF_CFG_FLAGS
=
"
$COMMON_FF_CFG_FLAGS
--disable-parsers"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录