Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ac13
GSYVideoPlayer
提交
098cb882
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 搜索 >>
提交
098cb882
编写于
3月 25, 2019
作者:
G
guoshuyu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加自定义exo source 演示,实现证书问题
上级
217ee3ed
变更
4
展开全部
隐藏空白更改
内联
并排
Showing
4 changed file
with
987 addition
and
1 deletion
+987
-1
app/src/main/java/com/example/gsyvideoplayer/GSYApplication.java
.../main/java/com/example/gsyvideoplayer/GSYApplication.java
+22
-1
app/src/main/java/com/example/gsyvideoplayer/source/CustomSourceTag.java
...va/com/example/gsyvideoplayer/source/CustomSourceTag.java
+25
-0
app/src/main/java/com/example/gsyvideoplayer/source/DefaultHttpDataSource.java
.../example/gsyvideoplayer/source/DefaultHttpDataSource.java
+817
-0
app/src/main/java/com/example/gsyvideoplayer/source/DefaultHttpDataSourceFactory.java
...e/gsyvideoplayer/source/DefaultHttpDataSourceFactory.java
+123
-0
未找到文件。
app/src/main/java/com/example/gsyvideoplayer/GSYApplication.java
浏览文件 @
098cb882
package
com.example.gsyvideoplayer
;
import
android.net.Uri
;
import
androidx.multidex.MultiDexApplication
;
import
tv.danmaku.ijk.media.exo2.Exo2PlayerManager
;
import
tv.danmaku.ijk.media.exo2.ExoMediaSourceInterceptListener
;
import
tv.danmaku.ijk.media.exo2.ExoSourceManager
;
import
com.example.gsyvideoplayer.source.CustomSourceTag
;
import
com.google.android.exoplayer2.C
;
import
com.google.android.exoplayer2.source.MediaSource
;
import
com.google.android.exoplayer2.source.hls.HlsMediaSource
;
import
com.shuyu.gsyvideoplayer.player.PlayerFactory
;
import
com.squareup.leakcanary.LeakCanary
;
import
java.io.File
;
import
static
com
.
google
.
android
.
exoplayer2
.
util
.
Util
.
inferContentType
;
/**
* Created by shuyu on 2016/11/11.
*/
...
...
@@ -39,13 +53,20 @@ public class GSYApplication extends MultiDexApplication {
//IjkPlayerManager.setLogLevel(IjkMediaPlayer.IJK_LOG_SILENT);
/*ExoSourceManager.setExoMediaSourceInterceptListener(new ExoMediaSourceInterceptListener() {
@Override
public MediaSource getMediaSource(String dataSource, boolean preview, boolean cacheEnable, boolean isLooping, File cacheDir) {
Uri contentUri = Uri.parse(dataSource);
int contentType = inferContentType(dataSource);
switch (contentType) {
case C.TYPE_HLS:
return new HlsMediaSource.Factory(CustomSourceTag.getDataSourceFactory(GSYApplication.this.getApplicationContext(), preview)).createMediaSource(contentUri);
}
return null;
}
});*/
}
}
app/src/main/java/com/example/gsyvideoplayer/source/CustomSourceTag.java
0 → 100644
浏览文件 @
098cb882
package
com.example.gsyvideoplayer.source
;
import
android.content.Context
;
import
com.google.android.exoplayer2.upstream.DataSource
;
import
com.google.android.exoplayer2.upstream.DefaultBandwidthMeter
;
import
com.google.android.exoplayer2.upstream.DefaultDataSourceFactory
;
import
com.google.android.exoplayer2.util.Util
;
public
class
CustomSourceTag
{
/**
* 获取SourceFactory
*/
static
public
DataSource
.
Factory
getDataSourceFactory
(
Context
context
,
boolean
preview
)
{
return
new
DefaultDataSourceFactory
(
context
,
preview
?
null
:
new
DefaultBandwidthMeter
(),
getHttpDataSourceFactory
(
context
,
preview
));
}
static
public
DataSource
.
Factory
getHttpDataSourceFactory
(
Context
context
,
boolean
preview
)
{
DefaultHttpDataSourceFactory
dataSourceFactory
=
new
DefaultHttpDataSourceFactory
(
Util
.
getUserAgent
(
context
,
"yout tag"
),
preview
?
null
:
new
DefaultBandwidthMeter
());
return
dataSourceFactory
;
}
}
app/src/main/java/com/example/gsyvideoplayer/source/DefaultHttpDataSource.java
0 → 100644
浏览文件 @
098cb882
此差异已折叠。
点击以展开。
app/src/main/java/com/example/gsyvideoplayer/source/DefaultHttpDataSourceFactory.java
0 → 100644
浏览文件 @
098cb882
/*
* Copyright (C) 2016 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.example.gsyvideoplayer.source
;
import
com.google.android.exoplayer2.upstream.HttpDataSource
;
import
com.google.android.exoplayer2.upstream.HttpDataSource.BaseFactory
;
import
com.google.android.exoplayer2.upstream.HttpDataSource.Factory
;
import
com.google.android.exoplayer2.upstream.TransferListener
;
import
androidx.annotation.Nullable
;
/** A {@link Factory} that produces {@link DefaultHttpDataSource} instances. */
public
final
class
DefaultHttpDataSourceFactory
extends
BaseFactory
{
private
final
String
userAgent
;
private
final
@Nullable
TransferListener
listener
;
private
final
int
connectTimeoutMillis
;
private
final
int
readTimeoutMillis
;
private
final
boolean
allowCrossProtocolRedirects
;
/**
* Constructs a DefaultHttpDataSourceFactory. Sets {@link
* DefaultHttpDataSource#DEFAULT_CONNECT_TIMEOUT_MILLIS} as the connection timeout, {@link
* DefaultHttpDataSource#DEFAULT_READ_TIMEOUT_MILLIS} as the read timeout and disables
* cross-protocol redirects.
*
* @param userAgent The User-Agent string that should be used.
*/
public
DefaultHttpDataSourceFactory
(
String
userAgent
)
{
this
(
userAgent
,
null
);
}
/**
* Constructs a DefaultHttpDataSourceFactory. Sets {@link
* DefaultHttpDataSource#DEFAULT_CONNECT_TIMEOUT_MILLIS} as the connection timeout, {@link
* DefaultHttpDataSource#DEFAULT_READ_TIMEOUT_MILLIS} as the read timeout and disables
* cross-protocol redirects.
*
* @param userAgent The User-Agent string that should be used.
* @param listener An optional listener.
* @see #DefaultHttpDataSourceFactory(String, TransferListener, int, int, boolean)
*/
public
DefaultHttpDataSourceFactory
(
String
userAgent
,
@Nullable
TransferListener
listener
)
{
this
(
userAgent
,
listener
,
DefaultHttpDataSource
.
DEFAULT_CONNECT_TIMEOUT_MILLIS
,
DefaultHttpDataSource
.
DEFAULT_READ_TIMEOUT_MILLIS
,
false
);
}
/**
* @param userAgent The User-Agent string that should be used.
* @param connectTimeoutMillis The connection timeout that should be used when requesting remote
* data, in milliseconds. A timeout of zero is interpreted as an infinite timeout.
* @param readTimeoutMillis The read timeout that should be used when requesting remote data, in
* milliseconds. A timeout of zero is interpreted as an infinite timeout.
* @param allowCrossProtocolRedirects Whether cross-protocol redirects (i.e. redirects from HTTP
* to HTTPS and vice versa) are enabled.
*/
public
DefaultHttpDataSourceFactory
(
String
userAgent
,
int
connectTimeoutMillis
,
int
readTimeoutMillis
,
boolean
allowCrossProtocolRedirects
)
{
this
(
userAgent
,
/* listener= */
null
,
connectTimeoutMillis
,
readTimeoutMillis
,
allowCrossProtocolRedirects
);
}
/**
* @param userAgent The User-Agent string that should be used.
* @param listener An optional listener.
* @param connectTimeoutMillis The connection timeout that should be used when requesting remote
* data, in milliseconds. A timeout of zero is interpreted as an infinite timeout.
* @param readTimeoutMillis The read timeout that should be used when requesting remote data, in
* milliseconds. A timeout of zero is interpreted as an infinite timeout.
* @param allowCrossProtocolRedirects Whether cross-protocol redirects (i.e. redirects from HTTP
* to HTTPS and vice versa) are enabled.
*/
public
DefaultHttpDataSourceFactory
(
String
userAgent
,
@Nullable
TransferListener
listener
,
int
connectTimeoutMillis
,
int
readTimeoutMillis
,
boolean
allowCrossProtocolRedirects
)
{
this
.
userAgent
=
userAgent
;
this
.
listener
=
listener
;
this
.
connectTimeoutMillis
=
connectTimeoutMillis
;
this
.
readTimeoutMillis
=
readTimeoutMillis
;
this
.
allowCrossProtocolRedirects
=
allowCrossProtocolRedirects
;
}
@Override
protected
DefaultHttpDataSource
createDataSourceInternal
(
HttpDataSource
.
RequestProperties
defaultRequestProperties
)
{
DefaultHttpDataSource
dataSource
=
new
DefaultHttpDataSource
(
userAgent
,
/* contentTypePredicate= */
null
,
connectTimeoutMillis
,
readTimeoutMillis
,
allowCrossProtocolRedirects
,
defaultRequestProperties
);
if
(
listener
!=
null
)
{
dataSource
.
addTransferListener
(
listener
);
}
return
dataSource
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录