Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ac13
GSYVideoPlayer
提交
08fc2252
G
GSYVideoPlayer
项目概览
ac13
/
GSYVideoPlayer
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
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 搜索 >>
提交
08fc2252
编写于
10月 26, 2017
作者:
G
guoshuyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
调整部分代码 (2017-10-26)
上级
934428fb
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
58 addition
and
101 deletion
+58
-101
app/src/main/res/layout/activity_main.xml
app/src/main/res/layout/activity_main.xml
+16
-16
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/render/GSYRenderView.java
...n/java/com/shuyu/gsyvideoplayer/render/GSYRenderView.java
+12
-27
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/render/view/GSYSurfaceView.java
.../com/shuyu/gsyvideoplayer/render/view/GSYSurfaceView.java
+1
-20
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/render/view/GSYTextureView.java
.../com/shuyu/gsyvideoplayer/render/view/GSYTextureView.java
+1
-18
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/render/view/GSYVideoGLView.java
.../com/shuyu/gsyvideoplayer/render/view/GSYVideoGLView.java
+1
-18
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/utils/MeasureHelper.java
...in/java/com/shuyu/gsyvideoplayer/utils/MeasureHelper.java
+27
-2
未找到文件。
app/src/main/res/layout/activity_main.xml
浏览文件 @
08fc2252
...
...
@@ -19,77 +19,77 @@
android:id=
"@+id/open_btn"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:text=
"
Open
Video"
/>
android:text=
"
打开
Video"
/>
<Button
android:id=
"@+id/open_control"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"
Control
"
/>
android:text=
"
带控制DEMO
"
/>
<Button
android:id=
"@+id/open_btn_empty"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"
NO UI
"
/>
android:text=
"
无UI界面
"
/>
<Button
android:id=
"@+id/open_filter"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"
Filter
"
/>
android:text=
"
滤镜
"
/>
<Button
android:id=
"@+id/open_btn_pick"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"
Switch
"
/>
android:text=
"
无缝切换
"
/>
<Button
android:id=
"@+id/list_btn"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"List
Video
"
/>
android:text=
"List
列表
"
/>
<Button
android:id=
"@+id/list_btn_2"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"List
Video2
"
/>
android:text=
"List
列表2(弃)
"
/>
<Button
android:id=
"@+id/recycler"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"recycler"
/>
android:text=
"recycler
列表
"
/>
<Button
android:id=
"@+id/recycler_2"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"recycler
2
"
/>
android:text=
"recycler
列表2(弃)
"
/>
<Button
android:id=
"@+id/list_detail"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"Detail
Video
"
/>
android:text=
"Detail
模式
"
/>
<Button
android:id=
"@+id/list_detail_list"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"Detail
List
"
/>
android:text=
"Detail
列表模式
"
/>
<Button
...
...
@@ -97,7 +97,7 @@
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"
web detail
"
/>
android:text=
"
Web detail模式
"
/>
<Button
...
...
@@ -105,28 +105,28 @@
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"
Danmaku Vide
o"
/>
android:text=
"
弹幕dem
o"
/>
<Button
android:id=
"@+id/fragment_video"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"Fragment"
/>
android:text=
"Fragment
下使用
"
/>
<Button
android:id=
"@+id/more_type"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"
More Type
"
/>
android:text=
"
多类型模式
"
/>
<Button
android:id=
"@+id/input_type"
android:layout_width=
"120dp"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"20dp"
android:text=
"
Input Type
"
/>
android:text=
"
输入url
"
/>
<Button
android:id=
"@+id/clear_cache"
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/render/GSYRenderView.java
浏览文件 @
08fc2252
...
...
@@ -52,15 +52,16 @@ public class GSYRenderView {
}
public
void
invalidate
()
{
mShowView
.
invalidate
();
if
(
mShowView
!=
null
)
mShowView
.
invalidate
();
}
public
int
getWidth
()
{
return
mShowView
.
getWidth
()
;
return
(
mShowView
!=
null
)
?
mShowView
.
getWidth
()
:
0
;
}
public
int
getHeight
()
{
return
mShowView
.
getHeight
()
;
return
(
mShowView
!=
null
)
?
mShowView
.
getHeight
()
:
0
;
}
public
View
getShowView
()
{
...
...
@@ -206,17 +207,7 @@ public class GSYRenderView {
mShowView
=
gsyTextureView
;
int
params
=
getTextureParams
();
if
(
textureViewContainer
instanceof
RelativeLayout
)
{
RelativeLayout
.
LayoutParams
layoutParams
=
new
RelativeLayout
.
LayoutParams
(
params
,
params
);
layoutParams
.
addRule
(
RelativeLayout
.
CENTER_IN_PARENT
);
textureViewContainer
.
addView
(
gsyTextureView
,
layoutParams
);
}
else
if
(
textureViewContainer
instanceof
FrameLayout
)
{
FrameLayout
.
LayoutParams
layoutParams
=
new
FrameLayout
.
LayoutParams
(
params
,
params
);
layoutParams
.
gravity
=
Gravity
.
CENTER
;
textureViewContainer
.
addView
(
gsyTextureView
,
layoutParams
);
}
addToParent
(
textureViewContainer
,
gsyTextureView
);
}
/**
...
...
@@ -232,17 +223,7 @@ public class GSYRenderView {
mShowView
=
showSurfaceView
;
int
params
=
getTextureParams
();
if
(
textureViewContainer
instanceof
RelativeLayout
)
{
RelativeLayout
.
LayoutParams
layoutParams
=
new
RelativeLayout
.
LayoutParams
(
params
,
params
);
layoutParams
.
addRule
(
RelativeLayout
.
CENTER_IN_PARENT
);
textureViewContainer
.
addView
(
showSurfaceView
,
layoutParams
);
}
else
if
(
textureViewContainer
instanceof
FrameLayout
)
{
FrameLayout
.
LayoutParams
layoutParams
=
new
FrameLayout
.
LayoutParams
(
params
,
params
);
layoutParams
.
gravity
=
Gravity
.
CENTER
;
textureViewContainer
.
addView
(
showSurfaceView
,
layoutParams
);
}
addToParent
(
textureViewContainer
,
showSurfaceView
);
}
/**
...
...
@@ -269,16 +250,20 @@ public class GSYRenderView {
gsyVideoGLView
.
setMVPMatrix
(
transform
);
}
addToParent
(
textureViewContainer
,
gsyVideoGLView
);
}
private
void
addToParent
(
ViewGroup
textureViewContainer
,
View
render
)
{
int
params
=
getTextureParams
();
if
(
textureViewContainer
instanceof
RelativeLayout
)
{
RelativeLayout
.
LayoutParams
layoutParams
=
new
RelativeLayout
.
LayoutParams
(
params
,
params
);
layoutParams
.
addRule
(
RelativeLayout
.
CENTER_IN_PARENT
);
textureViewContainer
.
addView
(
gsyVideoGLView
,
layoutParams
);
textureViewContainer
.
addView
(
render
,
layoutParams
);
}
else
if
(
textureViewContainer
instanceof
FrameLayout
)
{
FrameLayout
.
LayoutParams
layoutParams
=
new
FrameLayout
.
LayoutParams
(
params
,
params
);
layoutParams
.
gravity
=
Gravity
.
CENTER
;
textureViewContainer
.
addView
(
gsyVideoGLView
,
layoutParams
);
textureViewContainer
.
addView
(
render
,
layoutParams
);
}
}
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/render/view/GSYSurfaceView.java
浏览文件 @
08fc2252
...
...
@@ -8,7 +8,6 @@ import com.shuyu.gsyvideoplayer.GSYVideoManager;
import
com.shuyu.gsyvideoplayer.utils.MeasureHelper
;
/**
*
* Created by guoshuyu on 2017/8/26.
*/
...
...
@@ -31,25 +30,7 @@ public class GSYSurfaceView extends SurfaceView {
@Override
protected
void
onMeasure
(
int
widthMeasureSpec
,
int
heightMeasureSpec
)
{
if
(
GSYVideoManager
.
instance
().
getMediaPlayer
()
!=
null
)
{
try
{
int
videoWidth
=
GSYVideoManager
.
instance
().
getCurrentVideoWidth
();
int
videoHeight
=
GSYVideoManager
.
instance
().
getCurrentVideoHeight
();
int
videoSarNum
=
GSYVideoManager
.
instance
().
getMediaPlayer
().
getVideoSarNum
();
int
videoSarDen
=
GSYVideoManager
.
instance
().
getMediaPlayer
().
getVideoSarDen
();
if
(
videoWidth
>
0
&&
videoHeight
>
0
)
{
measureHelper
.
setVideoSampleAspectRatio
(
videoSarNum
,
videoSarDen
);
measureHelper
.
setVideoSize
(
videoWidth
,
videoHeight
);
}
measureHelper
.
setVideoRotation
((
int
)
getRotation
());
measureHelper
.
doMeasure
(
widthMeasureSpec
,
heightMeasureSpec
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
measureHelper
.
prepareMeasure
(
widthMeasureSpec
,
heightMeasureSpec
,
(
int
)
getRotation
());
setMeasuredDimension
(
measureHelper
.
getMeasuredWidth
(),
measureHelper
.
getMeasuredHeight
());
}
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/render/view/GSYTextureView.java
浏览文件 @
08fc2252
...
...
@@ -34,24 +34,7 @@ public class GSYTextureView extends TextureView {
@Override
protected
void
onMeasure
(
int
widthMeasureSpec
,
int
heightMeasureSpec
)
{
if
(
GSYVideoManager
.
instance
().
getMediaPlayer
()
!=
null
)
{
try
{
int
videoWidth
=
GSYVideoManager
.
instance
().
getCurrentVideoWidth
();
int
videoHeight
=
GSYVideoManager
.
instance
().
getCurrentVideoHeight
();
int
videoSarNum
=
GSYVideoManager
.
instance
().
getMediaPlayer
().
getVideoSarNum
();
int
videoSarDen
=
GSYVideoManager
.
instance
().
getMediaPlayer
().
getVideoSarDen
();
if
(
videoWidth
>
0
&&
videoHeight
>
0
)
{
measureHelper
.
setVideoSampleAspectRatio
(
videoSarNum
,
videoSarDen
);
measureHelper
.
setVideoSize
(
videoWidth
,
videoHeight
);
}
measureHelper
.
setVideoRotation
((
int
)
getRotation
());
measureHelper
.
doMeasure
(
widthMeasureSpec
,
heightMeasureSpec
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
measureHelper
.
prepareMeasure
(
widthMeasureSpec
,
heightMeasureSpec
,
(
int
)
getRotation
());
setMeasuredDimension
(
measureHelper
.
getMeasuredWidth
(),
measureHelper
.
getMeasuredHeight
());
}
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/render/view/GSYVideoGLView.java
浏览文件 @
08fc2252
...
...
@@ -107,24 +107,7 @@ public class GSYVideoGLView extends GLSurfaceView {
@Override
protected
void
onMeasure
(
int
widthMeasureSpec
,
int
heightMeasureSpec
)
{
if
(
GSYVideoManager
.
instance
().
getMediaPlayer
()
!=
null
)
{
try
{
int
videoWidth
=
GSYVideoManager
.
instance
().
getCurrentVideoWidth
();
int
videoHeight
=
GSYVideoManager
.
instance
().
getCurrentVideoHeight
();
int
videoSarNum
=
GSYVideoManager
.
instance
().
getMediaPlayer
().
getVideoSarNum
();
int
videoSarDen
=
GSYVideoManager
.
instance
().
getMediaPlayer
().
getVideoSarDen
();
if
(
videoWidth
>
0
&&
videoHeight
>
0
)
{
measureHelper
.
setVideoSampleAspectRatio
(
videoSarNum
,
videoSarDen
);
measureHelper
.
setVideoSize
(
videoWidth
,
videoHeight
);
}
measureHelper
.
setVideoRotation
((
int
)
getRotation
());
measureHelper
.
doMeasure
(
widthMeasureSpec
,
heightMeasureSpec
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
measureHelper
.
prepareMeasure
(
widthMeasureSpec
,
heightMeasureSpec
,
(
int
)
getRotation
());
setMeasuredDimension
(
measureHelper
.
getMeasuredWidth
(),
measureHelper
.
getMeasuredHeight
());
}
...
...
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/utils/MeasureHelper.java
浏览文件 @
08fc2252
...
...
@@ -19,6 +19,8 @@ package com.shuyu.gsyvideoplayer.utils;
import
android.view.View
;
import
com.shuyu.gsyvideoplayer.GSYVideoManager
;
import
java.lang.ref.WeakReference
;
public
final
class
MeasureHelper
{
...
...
@@ -72,7 +74,7 @@ public final class MeasureHelper {
if
(
mVideoRotationDegree
==
90
||
mVideoRotationDegree
==
270
)
{
int
tempSpec
=
widthMeasureSpec
;
widthMeasureSpec
=
heightMeasureSpec
;
widthMeasureSpec
=
heightMeasureSpec
;
heightMeasureSpec
=
tempSpec
;
}
...
...
@@ -103,7 +105,7 @@ public final class MeasureHelper {
break
;
case
GSYVideoType
.
SCREEN_TYPE_DEFAULT
:
case
GSYVideoType
.
SCREEN_TYPE_FULL
:
//case GSYVideoType.AR_ASPECT_WRAP_CONTENT:
//case GSYVideoType.AR_ASPECT_WRAP_CONTENT:
default
:
displayAspectRatio
=
(
float
)
mVideoWidth
/
(
float
)
mVideoHeight
;
if
(
mVideoSarNum
>
0
&&
mVideoSarDen
>
0
)
...
...
@@ -202,6 +204,29 @@ public final class MeasureHelper {
mMeasuredHeight
=
height
;
}
public
void
prepareMeasure
(
int
widthMeasureSpec
,
int
heightMeasureSpec
,
int
rotate
)
{
if
(
GSYVideoManager
.
instance
().
getMediaPlayer
()
!=
null
)
{
try
{
int
videoWidth
=
GSYVideoManager
.
instance
().
getCurrentVideoWidth
();
int
videoHeight
=
GSYVideoManager
.
instance
().
getCurrentVideoHeight
();
int
videoSarNum
=
GSYVideoManager
.
instance
().
getMediaPlayer
().
getVideoSarNum
();
int
videoSarDen
=
GSYVideoManager
.
instance
().
getMediaPlayer
().
getVideoSarDen
();
if
(
videoWidth
>
0
&&
videoHeight
>
0
)
{
setVideoSampleAspectRatio
(
videoSarNum
,
videoSarDen
);
setVideoSize
(
videoWidth
,
videoHeight
);
}
setVideoRotation
(
rotate
);
doMeasure
(
widthMeasureSpec
,
heightMeasureSpec
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
public
int
getMeasuredWidth
()
{
return
mMeasuredWidth
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录