提交 873de027 编写于 作者: G guoshuyu

增加 exo 支持 raw

上级 02dc1124
......@@ -11,6 +11,7 @@ import android.widget.RelativeLayout;
import com.example.gsyvideoplayer.video.LandLayoutVideo;
import com.google.android.exoplayer2.SeekParameters;
import com.google.android.exoplayer2.upstream.RawResourceDataSource;
import com.shuyu.gsyvideoplayer.GSYVideoManager;
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack;
import com.shuyu.gsyvideoplayer.listener.GSYVideoProgressListener;
......@@ -253,9 +254,12 @@ public class DetailPlayer extends AppCompatActivity {
private String getUrl() {
//String url = "android.resource://" + getPackageName() + "/" + R.raw.test;
///String url = "android.resource://" + getPackageName() + "/" + R.raw.test1;
//注意,用ijk模式播放raw视频,这个必须打开
//GSYVideoManager.instance().enableRawPlay(getApplicationContext());
///GSYVideoManager.instance().enableRawPlay(getApplicationContext());
///exo raw 支持
///String url = RawResourceDataSource.buildRawResourceUri(R.raw.test).toString();
//断网自动重新链接,url前接上ijkhttphook:
//String url = "ijkhttphook:https://res.exexm.com/cw_145225549855002";
......
......@@ -23,9 +23,11 @@ import com.google.android.exoplayer2.source.hls.HlsMediaSource;
import com.google.android.exoplayer2.source.smoothstreaming.DefaultSsChunkSource;
import com.google.android.exoplayer2.source.smoothstreaming.SsMediaSource;
import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DataSpec;
import com.google.android.exoplayer2.upstream.DefaultBandwidthMeter;
import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory;
import com.google.android.exoplayer2.upstream.RawResourceDataSource;
import com.google.android.exoplayer2.upstream.cache.Cache;
import com.google.android.exoplayer2.upstream.cache.CacheDataSource;
import com.google.android.exoplayer2.upstream.cache.CacheDataSourceFactory;
......@@ -95,6 +97,27 @@ public class ExoSourceManager {
mDataSource = dataSource;
Uri contentUri = Uri.parse(dataSource);
int contentType = inferContentType(dataSource, overrideExtension);
if("android.resource".equals(contentUri.getScheme())) {
DataSpec dataSpec = new DataSpec(contentUri);
final RawResourceDataSource rawResourceDataSource = new RawResourceDataSource(mAppContext);
try {
rawResourceDataSource.open(dataSpec);
} catch (RawResourceDataSource.RawResourceDataSourceException e) {
e.printStackTrace();
}
DataSource.Factory factory = new DataSource.Factory() {
@Override
public DataSource createDataSource() {
return rawResourceDataSource;
}
};
ExtractorMediaSource extractorMediaSource = new ExtractorMediaSource(rawResourceDataSource.getUri(),
factory, new DefaultExtractorsFactory(), null, null);
return extractorMediaSource;
}
switch (contentType) {
case C.TYPE_SS:
mediaSource = new SsMediaSource.Factory(
......
......@@ -36,7 +36,7 @@ dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
api project(':gsyVideoPlayer-java')
//api project(':gsyVideoPlayer-exo_player2')
api project(':gsyVideoPlayer-exo_player2')
//api project(':gsyVideoPlayer-armv5')
//api project(':gsyVideoPlayer-armv7a')
//api project(':gsyVideoPlayer-armv64')
......@@ -49,7 +49,7 @@ dependencies {
//api "com.shuyu:GSYVideoPlayer:$gsyVideoVersion"
//api "com.shuyu:gsyVideoPlayer-java:$gsyVideoVersion"
api "com.shuyu:GSYVideoPlayer-exo2:$gsyVideoVersion"
//api "com.shuyu:GSYVideoPlayer-exo2:$gsyVideoVersion"
//api "com.shuyu:gsyVideoPlayer-armv5:$gsyVideoVersion"
//api "com.shuyu:gsyVideoPlayer-armv7a:$gsyVideoVersion"
//api "com.shuyu:gsyVideoPlayer-arm64:$gsyVideoVersion"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册