Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_26386469
GSYVideoPlayer
提交
cafe3414
G
GSYVideoPlayer
项目概览
qq_26386469
/
GSYVideoPlayer
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
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 搜索 >>
提交
cafe3414
编写于
9月 29, 2017
作者:
G
guoshuyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
多重播放 (2017-09-29)
上级
f445fb01
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
75 addition
and
6 deletion
+75
-6
README.md
README.md
+2
-1
app/src/main/java/com/example/gsyvideoplayer/DetailFilterActivity.java
...java/com/example/gsyvideoplayer/DetailFilterActivity.java
+10
-4
app/src/main/java/com/example/gsyvideoplayer/effect/GSYVideoGLViewCustomRender2.java
...le/gsyvideoplayer/effect/GSYVideoGLViewCustomRender2.java
+34
-0
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/render/GSYVideoGLViewSimpleRender.java
...uyu/gsyvideoplayer/render/GSYVideoGLViewSimpleRender.java
+29
-1
未找到文件。
README.md
浏览文件 @
cafe3414
...
...
@@ -8,9 +8,10 @@
**支持**
|
**边播边缓存,使用了[AndroidVideoCache](https://github.com/danikula/AndroidVideoCache)。**
**支持**
|
**其他协议和编码concat、rtsp、hls、rtmp、crypto、mpeg等。**
**支持**
|
**DEMO演示获取视频第一帧等实现。**
**支持**
|
**简单滤镜(
内置
黑白、色彩过滤、高斯、模糊、模糊等等20多种)。**
**支持**
|
**简单滤镜(
马赛克、
黑白、色彩过滤、高斯、模糊、模糊等等20多种)。**
**支持**
|
**GL效果动画,(xyz轴旋转,放大)。**
**支持**
|
**视频帧截图功能**
**支持**
|
**视频播放效果(水印、画面多重播放等)**
**支持**
|
**列表播放;列表连续播放;重力旋转与手动旋转;视频本身rotation旋转属性。**
**支持**
|
**全屏切换动画效果;小窗口播放,可拖动。**
**支持**
|
**快播和慢播;网络视频加载速度。**
...
...
app/src/main/java/com/example/gsyvideoplayer/DetailFilterActivity.java
浏览文件 @
cafe3414
...
...
@@ -17,6 +17,7 @@ import com.bumptech.glide.Glide;
import
com.bumptech.glide.request.RequestOptions
;
import
com.example.gsyvideoplayer.effect.BitmapIconEffect
;
import
com.example.gsyvideoplayer.effect.GSYVideoGLViewCustomRender
;
import
com.example.gsyvideoplayer.effect.GSYVideoGLViewCustomRender2
;
import
com.example.gsyvideoplayer.effect.PixelationEffect
;
import
com.example.gsyvideoplayer.utils.CommonUtil
;
import
com.example.gsyvideoplayer.video.SampleControlVideo
;
...
...
@@ -140,12 +141,17 @@ public class DetailFilterActivity extends GSYBaseActivityDetail {
//自定义render需要在播放器开始播放之前,播放过程中不允许切换render
Bitmap
bitmap
=
BitmapFactory
.
decodeResource
(
getResources
(),
R
.
mipmap
.
ic_launcher
);
//水印图效果
/*Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
mGSYVideoGLViewCustomRender = new GSYVideoGLViewCustomRender();
mCustomBitmapIconEffect = new BitmapIconEffect(bitmap, dp2px(50), dp2px(50), 0.6f);
mGSYVideoGLViewCustomRender.setBitmapEffect(mCustomBitmapIconEffect);
detailPlayer
.
setCustomGLRenderer
(
mGSYVideoGLViewCustomRender
);
detailPlayer.setCustomGLRenderer(mGSYVideoGLViewCustomRender);
*/
//多窗口播放效果
//detailPlayer.setEffectFilter(new GammaEffect(0.8f));
//detailPlayer.setCustomGLRenderer(new GSYVideoGLViewCustomRender2());
changeFilter
.
setOnClickListener
(
new
View
.
OnClickListener
()
{
@Override
...
...
@@ -184,11 +190,11 @@ public class DetailFilterActivity extends GSYBaseActivityDetail {
percentageType
=
1
;
}
//水印图动起来
cancelTask2
();
/*
cancelTask2();
mTimerTask2 = new TaskLocal2();
timer.schedule(mTimerTask2, 0, 400);
moveBitmap
=
!
moveBitmap
;
moveBitmap = !moveBitmap;
*/
}
});
}
...
...
app/src/main/java/com/example/gsyvideoplayer/effect/GSYVideoGLViewCustomRender2.java
0 → 100644
浏览文件 @
cafe3414
package
com.example.gsyvideoplayer.effect
;
import
android.annotation.SuppressLint
;
import
android.opengl.GLES20
;
import
android.opengl.Matrix
;
import
com.shuyu.gsyvideoplayer.render.GSYVideoGLViewSimpleRender
;
import
javax.microedition.khronos.opengles.GL10
;
/**
* 双重播放效果
*/
@SuppressLint
(
"ViewConstructor"
)
public
class
GSYVideoGLViewCustomRender2
extends
GSYVideoGLViewSimpleRender
{
public
GSYVideoGLViewCustomRender2
()
{
super
();
}
@Override
public
void
onDrawFrame
(
GL10
glUnused
)
{
super
.
onDrawFrame
(
glUnused
);
float
[]
transform
=
new
float
[
16
];
Matrix
.
setIdentityM
(
transform
,
0
);
Matrix
.
scaleM
(
transform
,
0
,
0.8f
,
1
,
1
);
GLES20
.
glUniformMatrix4fv
(
getMuMVPMatrixHandle
(),
1
,
false
,
transform
,
0
);
GLES20
.
glDrawArrays
(
GLES20
.
GL_TRIANGLE_STRIP
,
0
,
4
);
GLES20
.
glFinish
();
}
}
gsyVideoPlayer-java/src/main/java/com/shuyu/gsyvideoplayer/render/GSYVideoGLViewSimpleRender.java
浏览文件 @
cafe3414
...
...
@@ -35,7 +35,7 @@ public class GSYVideoGLViewSimpleRender extends GSYVideoGLViewBaseRender {
private
static
final
int
TRIANGLE_VERTICES_DATA_UV_OFFSET
=
3
;
pr
ivate
static
final
int
GL_TEXTURE_EXTERNAL_OES
=
0x8D65
;
pr
otected
static
final
int
GL_TEXTURE_EXTERNAL_OES
=
0x8D65
;
private
final
float
[]
mTriangleVerticesData
=
{
// X, Y, Z, U, V
...
...
@@ -250,6 +250,34 @@ public class GSYVideoGLViewSimpleRender extends GSYVideoGLViewBaseRender {
return
mProgram
;
}
public
int
getMuMVPMatrixHandle
()
{
return
muMVPMatrixHandle
;
}
public
int
getMuSTMatrixHandle
()
{
return
muSTMatrixHandle
;
}
public
int
getMaPositionHandle
()
{
return
maPositionHandle
;
}
public
int
getMaTextureHandle
()
{
return
maTextureHandle
;
}
public
float
[]
getMVPMatrix
()
{
return
mMVPMatrix
;
}
public
float
[]
getSTMatrix
()
{
return
mSTMatrix
;
}
public
int
[]
getTextureID
()
{
return
mTextureID
;
}
protected
String
getVertexShader
()
{
return
mVertexShader
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录