提交 8eb333b2 编写于 作者: S shuyu

1.4.6 修正了预览

上级 bff66811
......@@ -13,7 +13,6 @@ import com.shuyu.gsyvideoplayer.model.GSYModel;
import java.io.IOException;
import java.util.Map;
import tv.danmaku.ijk.media.player.AbstractMediaPlayer;
import tv.danmaku.ijk.media.player.IMediaPlayer;
import tv.danmaku.ijk.media.player.IjkMediaPlayer;
......@@ -21,7 +20,7 @@ import tv.danmaku.ijk.media.player.IjkMediaPlayer;
* Created by shuyu on 2016/12/11.
*/
public class GSYPreViewManager implements IMediaPlayer.OnPreparedListener {
public class GSYPreViewManager implements IMediaPlayer.OnPreparedListener, IjkMediaPlayer.OnSeekCompleteListener {
public static String TAG = "GSYPreViewManager";
......@@ -35,6 +34,8 @@ public class GSYPreViewManager implements IMediaPlayer.OnPreparedListener {
private HandlerThread mMediaHandlerThread;
private GSYPreViewManager.MediaHandler mMediaHandler;
private boolean seekToComplete = true;
public static synchronized GSYPreViewManager instance() {
if (videoManager == null) {
videoManager = new GSYPreViewManager();
......@@ -81,6 +82,7 @@ public class GSYPreViewManager implements IMediaPlayer.OnPreparedListener {
initIJKPlayer(msg);
mediaPlayer.setOnPreparedListener(GSYPreViewManager.this);
mediaPlayer.setOnSeekCompleteListener(this);
mediaPlayer.setVolume(0, 0);
mediaPlayer.prepareAsync();
......@@ -115,6 +117,12 @@ public class GSYPreViewManager implements IMediaPlayer.OnPreparedListener {
@Override
public void onPrepared(IMediaPlayer mp) {
mp.pause();
seekToComplete = true;
}
@Override
public void onSeekComplete(IMediaPlayer mp) {
seekToComplete = true;
}
public void prepare(final String url, final Map<String, String> mapHeadData, boolean loop, float speed) {
......@@ -143,4 +151,11 @@ public class GSYPreViewManager implements IMediaPlayer.OnPreparedListener {
return mediaPlayer;
}
public boolean isSeekToComplete() {
return seekToComplete;
}
public void setSeekToComplete(boolean seekToComplete) {
this.seekToComplete = seekToComplete;
}
}
\ No newline at end of file
......@@ -11,6 +11,7 @@ import android.widget.SeekBar;
import com.shuyu.gsyvideoplayer.GSYPreViewManager;
import com.shuyu.gsyvideoplayer.GSYTextureView;
import com.shuyu.gsyvideoplayer.GSYVideoManager;
import com.shuyu.gsyvideoplayer.R;
/**
......@@ -107,8 +108,10 @@ public class CustomGSYVideoPlayer extends StandardGSYVideoPlayer {
layoutParams.leftMargin = offset;
//设置帧预览图的显示位置
mPreviewLayout.setLayoutParams(layoutParams);
if (GSYPreViewManager.instance().getMediaPlayer() != null && mHadPlay
&& Math.abs(progress - mPreProgress) > 2 && (mCacheFile || mOpenPreView)) {
if (GSYPreViewManager.instance().getMediaPlayer() != null
&& mHadPlay && (mCacheFile || mOpenPreView)
&& GSYPreViewManager.instance().isSeekToComplete()) {
GSYPreViewManager.instance().setSeekToComplete(false);
int time = progress * getDuration() / 100;
GSYPreViewManager.instance().getMediaPlayer().seekTo(time);
mPreProgress = progress;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册