私はconcatenatingMediaSourceを作成しましたが、画像urisをスキップします。 私はexoplayerが画像ファイルをサポートしていないことを知っています。私は画像URIが来て、画像ビューに画像をロードするときにexoplayerを一時停止して隠そうとしています。exoplayerのビデオファイルと画像ファイルのURIを含むConcatenatingMediaSourceを作成するにはどうすればよいですか?
public void loadMediaSources(){
MediaSource[] mediaSourcesToLoad = new MediaSource[stories.size()];
for(int i=0;i<stories.size();i++){
MediaSource mediaSource = new ExtractorMediaSource(Uri.parse(stories.get(i).getVideoUrl()),
dataSourceFactory, extractorsFactory, null, null);
mediaSourcesToLoad[i] = mediaSource;
}
mediaSources = new ConcatenatingMediaSource(mediaSourcesToLoad);
if(player!=null && mediaSources!=null){
player.prepare(mediaSources);
}
}
@Override
public void onPositionDiscontinuity() {
exoPlayerView.setVisibility(View.VISIBLE);
ivStory.setVisibility(View.VISIBLE);
mPosition = player.getCurrentWindowIndex();
Log.d("Position of Video", String.valueOf(mPosition));
if(stories!=null && stories.size()>0 && stories.get(player.getCurrentWindowIndex()).getPhotoUrl()!=null){
viewPhoto(stories.get(player.getCurrentWindowIndex()).getPhotoUrl());
}
}
private void viewPhoto(String url){
Glide.with(this).load(url).listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
stopPlayingVideo();
exoPlayerView.setVisibility(View.INVISIBLE);
ivStory.setVisibility(View.VISIBLE);
return false;
}
}).into(ivStory);
}
仲間こんにちは..私を言及してください。私はまた、この解決策を探しています。 plsは私を助けます –
@RanjithKumarここでも問題を追跡できます。 https://github.com/google/ExoPlayer/issues/3434 – androidlab
ありがとうございます。私も解決策を探しています。もし私が見つけたら、私は答えも投稿します。 –