1、删除腾讯IM、腾讯播放器jar+so文件
2、注释+删除使用了腾讯SDK的地方
This commit is contained in:
@@ -15,9 +15,6 @@ import android.view.ViewGroup;
|
||||
import android.view.animation.AccelerateInterpolator;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
import com.tencent.ugc.TXVideoEditConstants;
|
||||
import com.tencent.ugc.TXVideoEditer;
|
||||
import com.tencent.ugc.TXVideoInfoReader;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.activity.AbsActivity;
|
||||
import com.yunbao.common.utils.DialogUitl;
|
||||
@@ -47,11 +44,8 @@ import java.util.List;
|
||||
*/
|
||||
|
||||
public class VideoEditActivity extends AbsActivity implements
|
||||
VideoProcessViewHolder.ActionListener,//预处理控件点击取消回调
|
||||
TXVideoEditer.TXVideoProcessListener, //视频编辑前预处理进度回调
|
||||
TXVideoEditer.TXThumbnailListener, //视频编辑前预处理中生成每一帧缩略图回调
|
||||
TXVideoEditer.TXVideoPreviewListener,
|
||||
TXVideoEditer.TXVideoGenerateListener {
|
||||
VideoProcessViewHolder.ActionListener//预处理控件点击取消回调
|
||||
{
|
||||
|
||||
private static final String TAG = "VideoEditActivity";
|
||||
private static final int STATUS_NONE = 0;
|
||||
@@ -73,7 +67,7 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
private View mBtnNext;
|
||||
private View mBtnPlay;
|
||||
private ObjectAnimator mPlayBtnAnimator;//暂停按钮的动画
|
||||
private TXVideoEditer mVideoEditer;
|
||||
// private TXVideoEditer mVideoEditer;
|
||||
private List<Bitmap> mBitmapList;//视频每一帧的缩略图
|
||||
private long mVideoDuration;//视频总长度
|
||||
private String mOriginVideoPath;//原视频路径
|
||||
@@ -135,12 +129,12 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
mVideoEditer = new TXVideoEditer(mContext);
|
||||
/* mVideoEditer = new TXVideoEditer(mContext);
|
||||
mVideoEditer.setVideoPath(mOriginVideoPath);
|
||||
mVideoEditer.setVideoProcessListener(this);
|
||||
mVideoEditer.setThumbnailListener(this);
|
||||
mVideoEditer.setTXVideoPreviewListener(this);
|
||||
mVideoEditer.setVideoGenerateListener(this);
|
||||
mVideoEditer.setVideoGenerateListener(this);*/
|
||||
mCutStartTime = 0;
|
||||
mCutEndTime = mVideoDuration;
|
||||
startPreProcess();
|
||||
@@ -181,25 +175,12 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
switch (mPLayStatus) {
|
||||
case STATUS_PLAY:
|
||||
mPLayStatus = STATUS_PAUSE;
|
||||
if (mVideoEditer != null) {
|
||||
mVideoEditer.pausePlay();
|
||||
}
|
||||
break;
|
||||
case STATUS_PAUSE:
|
||||
mPLayStatus = STATUS_PLAY;
|
||||
if (mVideoEditer != null) {
|
||||
mVideoEditer.resumePlay();
|
||||
}
|
||||
break;
|
||||
case STATUS_PREVIEW_AT_TIME:
|
||||
mPLayStatus = STATUS_PLAY;
|
||||
if (mVideoEditer != null) {
|
||||
if (mPreviewAtTime > mCutStartTime && mPreviewAtTime < mCutEndTime) {
|
||||
mVideoEditer.startPlayFromTime(mPreviewAtTime, mCutEndTime);
|
||||
} else {
|
||||
mVideoEditer.startPlayFromTime(mCutStartTime, mCutEndTime);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (mPLayStatus == STATUS_PAUSE) {
|
||||
@@ -217,14 +198,6 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
* 开启视频预览
|
||||
*/
|
||||
private void startVideoPreview() {
|
||||
if (mVideoEditer == null) {
|
||||
return;
|
||||
}
|
||||
FrameLayout layout = (FrameLayout) findViewById(R.id.video_container);
|
||||
TXVideoEditConstants.TXPreviewParam param = new TXVideoEditConstants.TXPreviewParam();
|
||||
param.videoView = layout;
|
||||
param.renderMode = TXVideoEditConstants.PREVIEW_RENDER_MODE_FILL_EDGE;
|
||||
mVideoEditer.initWithPreview(param);
|
||||
startPlay();
|
||||
}
|
||||
|
||||
@@ -232,75 +205,11 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
* 开始播放
|
||||
*/
|
||||
private void startPlay() {
|
||||
if (mVideoEditer != null) {
|
||||
mPLayStatus = STATUS_PLAY;
|
||||
mVideoEditer.startPlayFromTime(mCutStartTime, mCutEndTime);
|
||||
hidePlayBtn();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 预览播放回调
|
||||
*/
|
||||
@Override
|
||||
public void onPreviewProgress(int time) {
|
||||
if (mPLayStatus == STATUS_PLAY && mCutViewHolder != null) {
|
||||
mCutViewHolder.onVideoProgressChanged(time);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 预览播放回调
|
||||
*/
|
||||
@Override
|
||||
public void onPreviewFinished() {
|
||||
if (mPLayStatus == STATUS_PLAY) {
|
||||
startPlay();//播放结束后,重新开始播放
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成视频进度回调
|
||||
*/
|
||||
@Override
|
||||
public void onGenerateProgress(float progress) {
|
||||
if (mVideoGenerateViewHolder != null) {
|
||||
mVideoGenerateViewHolder.setProgress((int) (progress * 100));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成视频结束回调
|
||||
*/
|
||||
@Override
|
||||
public void onGenerateComplete(TXVideoEditConstants.TXGenerateResult result) {
|
||||
L.e(TAG, "onGenerateComplete------->");
|
||||
if (result.retCode == TXVideoEditConstants.GENERATE_RESULT_OK) {
|
||||
L.e(TAG, "onGenerateComplete------->生成视频成功");
|
||||
ToastUtil.show(R.string.video_generate_success);
|
||||
switch (mSaveType) {
|
||||
case Constants.VIDEO_SAVE_SAVE://仅保存
|
||||
saveGenerateVideoInfo();
|
||||
break;
|
||||
case Constants.VIDEO_SAVE_PUB://仅发布
|
||||
VideoPublishActivity.forward(mContext, mGenerateVideoPath, mSaveType,mMusicBean != null ? mMusicBean.getId() : 0);
|
||||
break;
|
||||
case Constants.VIDEO_SAVE_SAVE_AND_PUB://保存并发布
|
||||
saveGenerateVideoInfo();
|
||||
VideoPublishActivity.forward(mContext, mGenerateVideoPath, mSaveType,mMusicBean != null ? mMusicBean.getId() : 0);
|
||||
break;
|
||||
}
|
||||
finish();
|
||||
} else {
|
||||
ToastUtil.show(R.string.video_generate_failed);
|
||||
if (mVideoGenerateViewHolder != null) {
|
||||
mVideoGenerateViewHolder.removeFromParent();
|
||||
}
|
||||
if (mBtnNext != null) {
|
||||
mBtnNext.setEnabled(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 把新生成的视频保存到ContentProvider,在选择上传的时候能找到
|
||||
@@ -345,39 +254,6 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
mMusicViewHolder.setActionListener(new VideoMusicViewHolder.ActionListener() {
|
||||
@Override
|
||||
public void onChooseMusic(MusicBean bean) {
|
||||
if (mVideoEditer != null && bean != null) {
|
||||
String bgmPath = bean.getLocalPath();
|
||||
if (TextUtils.isEmpty(bgmPath)) {
|
||||
return;
|
||||
}
|
||||
long bgmDuration = 0;
|
||||
if (mMetadataRetriever == null) {
|
||||
mMetadataRetriever = new MediaMetadataRetriever();
|
||||
}
|
||||
try {
|
||||
mMetadataRetriever.setDataSource(bgmPath);
|
||||
String duration = mMetadataRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
|
||||
bgmDuration = Long.parseLong(duration);
|
||||
} catch (Exception e) {
|
||||
bgmDuration = 0;
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (bgmDuration == 0) {
|
||||
return;
|
||||
}
|
||||
bean.setDuration(bgmDuration);
|
||||
mVideoEditer.setBGM(bgmPath);
|
||||
mVideoEditer.setBGMVolume(0.8f);
|
||||
if (mHasOriginBgm) {
|
||||
mVideoEditer.setVideoVolume(0);
|
||||
}
|
||||
mMusicBean = bean;
|
||||
if (mVolumeViewHolder != null) {
|
||||
mVolumeViewHolder.setMusicBean(bean);
|
||||
}
|
||||
mVideoEditer.stopPlay();
|
||||
startPlay();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -406,34 +282,19 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
|
||||
@Override
|
||||
public void onOriginalVolumeChanged(float value) {
|
||||
if (mVideoEditer != null) {
|
||||
mVideoEditer.setVideoVolume(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBgmVolumeChanged(float value) {
|
||||
if (mVideoEditer != null) {
|
||||
mVideoEditer.setBGMVolume(value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBgmCancelClick() {
|
||||
if (mVideoEditer != null) {
|
||||
mVideoEditer.setVideoVolume(0.8f);
|
||||
mVideoEditer.setBGM(null);
|
||||
mVideoEditer.stopPlay();
|
||||
startPlay();
|
||||
}
|
||||
mMusicBean = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBgmCutTimeChanged(long startTime, long endTime) {
|
||||
if (mVideoEditer != null) {
|
||||
mVideoEditer.setBGMStartTime(startTime, endTime);
|
||||
}
|
||||
}
|
||||
});
|
||||
mVolumeViewHolder.addToParent();
|
||||
@@ -456,9 +317,6 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
|
||||
@Override
|
||||
public void onFilterChanged(Bitmap bitmap) {
|
||||
if (mVideoEditer != null) {
|
||||
mVideoEditer.setFilter(bitmap);
|
||||
}
|
||||
}
|
||||
});
|
||||
mFilterViewHolder.addToParent();
|
||||
@@ -487,41 +345,20 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
public void onCutTimeChanged(long startTime, long endTime) {
|
||||
mCutStartTime = startTime;
|
||||
mCutEndTime = endTime;
|
||||
if (mVideoEditer != null) {
|
||||
mVideoEditer.setCutFromTime(startTime, endTime);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSpecialStart(int effect, long currentTimeMs) {
|
||||
if (mVideoEditer != null) {
|
||||
if (mPLayStatus == STATUS_NONE || mPLayStatus == STATUS_PREVIEW_AT_TIME) {
|
||||
mVideoEditer.startPlayFromTime(mPreviewAtTime, mCutEndTime);
|
||||
} else if (mPLayStatus == STATUS_PAUSE) {
|
||||
mVideoEditer.resumePlay();
|
||||
}
|
||||
mPLayStatus = STATUS_PLAY;
|
||||
mVideoEditer.startEffect(effect, currentTimeMs);
|
||||
}
|
||||
hidePlayBtn();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSpecialEnd(int effect, long currentTimeMs) {
|
||||
if (mVideoEditer != null) {
|
||||
mVideoEditer.pausePlay();
|
||||
mPLayStatus = STATUS_PAUSE;
|
||||
mVideoEditer.stopEffect(effect, currentTimeMs);
|
||||
}
|
||||
showPlayBtn();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSpecialCancel(long currentTimeMs) {
|
||||
if (mVideoEditer != null) {
|
||||
mVideoEditer.deleteLastEffect();
|
||||
previewAtTime(currentTimeMs);
|
||||
}
|
||||
}
|
||||
});
|
||||
mCutViewHolder.addToParent();
|
||||
@@ -531,10 +368,6 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
|
||||
|
||||
private void previewAtTime(long currentTimeMs) {
|
||||
if (mVideoEditer != null) {
|
||||
mVideoEditer.pausePlay();
|
||||
mVideoEditer.previewAtTime(currentTimeMs);
|
||||
}
|
||||
mPLayStatus = STATUS_PREVIEW_AT_TIME;
|
||||
mPreviewAtTime = currentTimeMs;
|
||||
showPlayBtn();
|
||||
@@ -591,7 +424,7 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
*/
|
||||
private void startGenerateVideo() {
|
||||
L.e(TAG, "startGenerateVideo------->生成视频");
|
||||
if (mVideoEditer == null) {
|
||||
/* if (mVideoEditer == null) {
|
||||
return;
|
||||
}
|
||||
mBtnNext.setEnabled(false);
|
||||
@@ -607,7 +440,7 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
mVideoGenerateViewHolder.addToParent();
|
||||
mVideoEditer.setCutFromTime(mCutStartTime, mCutEndTime);
|
||||
mGenerateVideoPath = StringUtil.generateVideoOutputPath();
|
||||
mVideoEditer.generateVideo(TXVideoEditConstants.VIDEO_COMPRESSED_720P, mGenerateVideoPath);
|
||||
mVideoEditer.generateVideo(TXVideoEditConstants.VIDEO_COMPRESSED_720P, mGenerateVideoPath);*/
|
||||
}
|
||||
|
||||
private void showGroup() {
|
||||
@@ -678,7 +511,7 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
if (mCutViewHolder != null) {
|
||||
mCutViewHolder.release();
|
||||
}
|
||||
if (mVideoEditer != null) {
|
||||
/* if (mVideoEditer != null) {
|
||||
mVideoEditer.deleteAllEffect();
|
||||
mVideoEditer.stopPlay();
|
||||
mVideoEditer.cancel();
|
||||
@@ -687,7 +520,7 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
mVideoEditer.setTXVideoPreviewListener(null);
|
||||
mVideoEditer.setVideoGenerateListener(null);
|
||||
mVideoEditer.release();
|
||||
}
|
||||
}*/
|
||||
if (mVideoProcessViewHolder != null) {
|
||||
mVideoProcessViewHolder.setActionListener(null);
|
||||
}
|
||||
@@ -705,7 +538,7 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
mHandler = null;
|
||||
mMetadataRetriever = null;
|
||||
mFilterViewHolder = null;
|
||||
mVideoEditer = null;
|
||||
// mVideoEditer = null;
|
||||
mMusicViewHolder = null;
|
||||
mVolumeViewHolder = null;
|
||||
mCutViewHolder = null;
|
||||
@@ -719,19 +552,19 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
mPaused = true;
|
||||
if (mVideoEditer != null && mPLayStatus == STATUS_PLAY) {
|
||||
mVideoEditer.pausePlay();
|
||||
}
|
||||
// if (mVideoEditer != null && mPLayStatus == STATUS_PLAY) {
|
||||
// mVideoEditer.pausePlay();
|
||||
// }
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (mPaused) {
|
||||
if (mVideoEditer != null && mPLayStatus == STATUS_PLAY) {
|
||||
mVideoEditer.resumePlay();
|
||||
}
|
||||
}
|
||||
// if (mPaused) {
|
||||
// if (mVideoEditer != null && mPLayStatus == STATUS_PLAY) {
|
||||
// mVideoEditer.resumePlay();
|
||||
// }
|
||||
// }
|
||||
mPaused = false;
|
||||
}
|
||||
|
||||
@@ -756,14 +589,14 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
TXVideoEditConstants.TXVideoInfo info = TXVideoInfoReader.getInstance().getVideoFileInfo(mOriginVideoPath);
|
||||
/* TXVideoEditConstants.TXVideoInfo info = TXVideoInfoReader.getInstance().getVideoFileInfo(mOriginVideoPath);
|
||||
if (mHandler != null) {
|
||||
if (info == null) {
|
||||
mHandler.sendEmptyMessage(MyHandler.ERROR);
|
||||
} else {
|
||||
mHandler.sendEmptyMessage(MyHandler.SUCCESS);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
} catch (Exception e) {
|
||||
if (mHandler != null) {
|
||||
mHandler.sendEmptyMessage(MyHandler.ERROR);
|
||||
@@ -778,7 +611,7 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
*/
|
||||
private void doPreProcess() {
|
||||
try {
|
||||
if (mVideoEditer != null) {
|
||||
/* if (mVideoEditer != null) {
|
||||
mBitmapList = new ArrayList<>();
|
||||
int thumbnailCount = (int) Math.floor(mVideoDuration / 1000f);
|
||||
TXVideoEditConstants.TXThumbnail thumbnail = new TXVideoEditConstants.TXThumbnail();
|
||||
@@ -787,7 +620,7 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
thumbnail.height = 100;
|
||||
mVideoEditer.setThumbnail(thumbnail);
|
||||
mVideoEditer.processVideo();
|
||||
}
|
||||
}*/
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
processFailed();
|
||||
@@ -796,48 +629,6 @@ public class VideoEditActivity extends AbsActivity implements
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 录制结束后,视频预处理进度回调
|
||||
*/
|
||||
@Override
|
||||
public void onProcessProgress(float progress) {
|
||||
int p = (int) (progress * 100);
|
||||
if (p > 0 && p <= 100) {
|
||||
if (mVideoProcessViewHolder != null) {
|
||||
mVideoProcessViewHolder.setProgress(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 录制结束后,视频预处理的回调
|
||||
*/
|
||||
@Override
|
||||
public void onProcessComplete(TXVideoEditConstants.TXGenerateResult result) {
|
||||
if (result.retCode == TXVideoEditConstants.GENERATE_RESULT_OK) {
|
||||
if (mVideoProcessViewHolder != null && mVideoProcessViewHolder.getProgress() == 0) {
|
||||
if (!mSdkError) {
|
||||
mSdkError = true;
|
||||
sdkProgressError();
|
||||
}
|
||||
} else {
|
||||
processCompleted();
|
||||
}
|
||||
} else {
|
||||
L.e(TAG, "视频预处理错误------->" + result.descMsg);
|
||||
processFailed();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 制结束后,获取缩略图的回调
|
||||
*/
|
||||
@Override
|
||||
public void onThumbnail(int i, long l, Bitmap bitmap) {
|
||||
if (mBitmapList != null) {
|
||||
mBitmapList.add(new SoftReference<>(bitmap).get());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
||||
@@ -21,11 +21,6 @@ import android.widget.TextView;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.tencent.rtmp.ITXLivePlayListener;
|
||||
import com.tencent.rtmp.TXLiveConstants;
|
||||
import com.tencent.rtmp.TXLivePlayConfig;
|
||||
import com.tencent.rtmp.TXLivePlayer;
|
||||
import com.tencent.rtmp.ui.TXCloudVideoView;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.Constants;
|
||||
import com.yunbao.common.activity.AbsActivity;
|
||||
@@ -61,7 +56,7 @@ import top.zibin.luban.OnRenameListener;
|
||||
* 视频发布
|
||||
*/
|
||||
|
||||
public class VideoPublishActivity extends AbsActivity implements ITXLivePlayListener, View.OnClickListener {
|
||||
public class VideoPublishActivity extends AbsActivity implements View.OnClickListener {
|
||||
|
||||
|
||||
public static void forward(Context context, String videoPath, int saveType, int musicId) {
|
||||
@@ -75,8 +70,8 @@ public class VideoPublishActivity extends AbsActivity implements ITXLivePlayList
|
||||
private static final String TAG = "VideoPublishActivity";
|
||||
private TextView mNum;
|
||||
private TextView mLocation;
|
||||
private TXCloudVideoView mTXCloudVideoView;
|
||||
private TXLivePlayer mPlayer;
|
||||
// private TXCloudVideoView mTXCloudVideoView;
|
||||
// private TXLivePlayer mPlayer;
|
||||
private String mVideoPath;
|
||||
private boolean mPlayStarted;//播放是否开始了
|
||||
private boolean mPaused;//生命周期暂停
|
||||
@@ -149,7 +144,7 @@ public class VideoPublishActivity extends AbsActivity implements ITXLivePlayList
|
||||
mLocation.setText(CommonAppConfig.getInstance().getCity());
|
||||
mCheckBox = findViewById(R.id.checkbox);
|
||||
mCheckBox.setOnClickListener(this);
|
||||
mTXCloudVideoView = findViewById(R.id.video_view);
|
||||
/* mTXCloudVideoView = findViewById(R.id.video_view);
|
||||
mPlayer = new TXLivePlayer(mContext);
|
||||
mPlayer.setConfig(new TXLivePlayConfig());
|
||||
mPlayer.setPlayerView(mTXCloudVideoView);
|
||||
@@ -160,75 +155,50 @@ public class VideoPublishActivity extends AbsActivity implements ITXLivePlayList
|
||||
int result = mPlayer.startPlay(mVideoPath, TXLivePlayer.PLAY_TYPE_LOCAL_VIDEO);
|
||||
if (result == 0) {
|
||||
mPlayStarted = true;
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onPlayEvent(int e, Bundle bundle) {
|
||||
switch (e) {
|
||||
case TXLiveConstants.PLAY_EVT_PLAY_END://播放结束
|
||||
onReplay();
|
||||
break;
|
||||
case TXLiveConstants.PLAY_EVT_CHANGE_RESOLUTION:
|
||||
onVideoSizeChanged(bundle.getInt("EVT_PARAM1", 0), bundle.getInt("EVT_PARAM2", 0));
|
||||
break;
|
||||
case TXLiveConstants.PLAY_EVT_PLAY_PROGRESS:
|
||||
int progress = bundle.getInt("EVT_PLAY_PROGRESS_MS");
|
||||
if (mVideoLastProgress == progress) {
|
||||
onReplay();
|
||||
} else {
|
||||
mVideoLastProgress = progress;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNetStatus(Bundle bundle) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取到视频宽高回调
|
||||
*/
|
||||
public void onVideoSizeChanged(float videoWidth, float videoHeight) {
|
||||
if (mTXCloudVideoView != null && videoWidth > 0 && videoHeight > 0) {
|
||||
/*if (mTXCloudVideoView != null && videoWidth > 0 && videoHeight > 0) {
|
||||
FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mTXCloudVideoView.getLayoutParams();
|
||||
if (videoWidth / videoHeight > 0.5625f) {//横屏 9:16=0.5625
|
||||
params.height = (int) (mTXCloudVideoView.getWidth() / videoWidth * videoHeight);
|
||||
params.gravity = Gravity.CENTER;
|
||||
mTXCloudVideoView.requestLayout();
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
/**
|
||||
* 循环播放
|
||||
*/
|
||||
private void onReplay() {
|
||||
if (mPlayStarted && mPlayer != null) {
|
||||
/*if (mPlayStarted && mPlayer != null) {
|
||||
mPlayer.seek(0);
|
||||
mPlayer.resume();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
mPaused = true;
|
||||
if (mPlayStarted && mPlayer != null) {
|
||||
/* if (mPlayStarted && mPlayer != null) {
|
||||
mPlayer.pause();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
if (mPaused && mPlayStarted && mPlayer != null) {
|
||||
/*if (mPaused && mPlayStarted && mPlayer != null) {
|
||||
mPlayer.resume();
|
||||
}
|
||||
}*/
|
||||
mPaused = false;
|
||||
}
|
||||
|
||||
@@ -236,17 +206,17 @@ public class VideoPublishActivity extends AbsActivity implements ITXLivePlayList
|
||||
CommonHttpUtil.cancel(CommonHttpConsts.GET_CONFIG);
|
||||
VideoHttpUtil.cancel(VideoHttpConsts.SAVE_UPLOAD_VIDEO_INFO);
|
||||
mPlayStarted = false;
|
||||
if (mPlayer != null) {
|
||||
/*if (mPlayer != null) {
|
||||
mPlayer.stopPlay(false);
|
||||
mPlayer.setPlayListener(null);
|
||||
}
|
||||
}*/
|
||||
if (mUploadStrategy != null) {
|
||||
mUploadStrategy.cancel();
|
||||
}
|
||||
// if (mMobShareUtil != null) {
|
||||
// mMobShareUtil.release();
|
||||
// }
|
||||
mPlayer = null;
|
||||
// mPlayer = null;
|
||||
mUploadStrategy = null;
|
||||
// mMobShareUtil = null;
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.tencent.ugc.TXVideoEditConstants;
|
||||
//import com.tencent.ugc.TXVideoEditConstants;
|
||||
import com.yunbao.common.utils.DpUtil;
|
||||
import com.yunbao.common.utils.StringUtil;
|
||||
import com.yunbao.common.views.AbsViewHolder;
|
||||
@@ -170,7 +170,7 @@ public class VideoEditCutViewHolder extends AbsViewHolder implements View.OnClic
|
||||
int color = 0;
|
||||
int effect = 0;
|
||||
int i = v.getId();
|
||||
if (i == R.id.btn_special_1) {
|
||||
/* if (i == R.id.btn_special_1) {
|
||||
color = 0xAA1FBCB6;
|
||||
effect = TXVideoEditConstants.TXEffectType_ROCK_LIGHT;
|
||||
|
||||
@@ -186,7 +186,7 @@ public class VideoEditCutViewHolder extends AbsViewHolder implements View.OnClic
|
||||
color = 0xAAEC5F9B;
|
||||
effect = TXVideoEditConstants.TXEffectType_SOUL_OUT;
|
||||
|
||||
}
|
||||
}*/
|
||||
if (mColorfulProgress != null) {
|
||||
mColorfulProgress.startMark(color);
|
||||
}
|
||||
@@ -205,7 +205,7 @@ public class VideoEditCutViewHolder extends AbsViewHolder implements View.OnClic
|
||||
mSpecialStartMark = false;
|
||||
int effect = 0;
|
||||
int i = v.getId();
|
||||
if (i == R.id.btn_special_1) {
|
||||
/*if (i == R.id.btn_special_1) {
|
||||
effect = TXVideoEditConstants.TXEffectType_ROCK_LIGHT;
|
||||
|
||||
} else if (i == R.id.btn_special_2) {
|
||||
@@ -217,7 +217,7 @@ public class VideoEditCutViewHolder extends AbsViewHolder implements View.OnClic
|
||||
} else if (i == R.id.btn_special_4) {
|
||||
effect = TXVideoEditConstants.TXEffectType_SOUL_OUT;
|
||||
|
||||
}
|
||||
}*/
|
||||
if (mColorfulProgress != null) {
|
||||
mColorfulProgress.endMark();
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ import com.google.android.exoplayer2.Player;
|
||||
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout;
|
||||
import com.google.android.exoplayer2.ui.StyledPlayerView;
|
||||
import com.google.android.exoplayer2.video.VideoSize;
|
||||
import com.tencent.rtmp.TXLiveConstants;
|
||||
import com.yunbao.common.utils.L;
|
||||
import com.yunbao.common.views.AbsViewHolder;
|
||||
import com.yunbao.video.R;
|
||||
@@ -37,7 +36,7 @@ import com.yunbao.video.http.VideoHttpUtil;
|
||||
|
||||
public class VideoPlayViewHolder extends AbsViewHolder implements View.OnClickListener {
|
||||
|
||||
private StyledPlayerView mTXCloudVideoView;
|
||||
private StyledPlayerView mPlayView;
|
||||
private View mVideoCover;
|
||||
private ExoPlayer mPlayer;
|
||||
private boolean mPaused;//生命周期暂停
|
||||
@@ -72,9 +71,9 @@ public class VideoPlayViewHolder extends AbsViewHolder implements View.OnClickLi
|
||||
.build();
|
||||
|
||||
mCachePath = mContext.getCacheDir().getAbsolutePath();
|
||||
mTXCloudVideoView = (StyledPlayerView) findViewById(R.id.placeholderView);
|
||||
mTXCloudVideoView.setKeepContentOnPlayerReset(true);
|
||||
mTXCloudVideoView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FIXED_WIDTH);
|
||||
mPlayView = (StyledPlayerView) findViewById(R.id.placeholderView);
|
||||
mPlayView.setKeepContentOnPlayerReset(true);
|
||||
mPlayView.setResizeMode(AspectRatioFrameLayout.RESIZE_MODE_FIXED_WIDTH);
|
||||
mPlayer = new ExoPlayer.Builder(mContext).setLoadControl(control).build();
|
||||
mPlayer.setVideoScalingMode(C.VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING);
|
||||
findViewById(R.id.root).setOnClickListener(this);
|
||||
@@ -98,11 +97,14 @@ public class VideoPlayViewHolder extends AbsViewHolder implements View.OnClickLi
|
||||
Player.Listener.super.onPlaybackStateChanged(playbackState);
|
||||
if (playbackState == Player.STATE_READY) {
|
||||
mPlayer.play();
|
||||
onPlayEvent(TXLiveConstants.PLAY_EVT_PLAY_BEGIN, null);
|
||||
onPlayEvent(1, null);
|
||||
// onPlayEvent(TXLiveConstants.PLAY_EVT_PLAY_BEGIN, null);
|
||||
} else if (playbackState == Player.STATE_BUFFERING) {
|
||||
onPlayEvent(TXLiveConstants.PLAY_EVT_PLAY_LOADING, null);
|
||||
onPlayEvent(2, null);
|
||||
// onPlayEvent(TXLiveConstants.PLAY_EVT_PLAY_LOADING, null);
|
||||
} else if (playbackState == Player.STATE_ENDED) {
|
||||
onPlayEvent(TXLiveConstants.PLAY_EVT_PLAY_END, null);
|
||||
onPlayEvent(3, null);
|
||||
// onPlayEvent(TXLiveConstants.PLAY_EVT_PLAY_END, null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -112,13 +114,15 @@ public class VideoPlayViewHolder extends AbsViewHolder implements View.OnClickLi
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putInt("EVT_PARAM1", videoSize.width);
|
||||
bundle.putInt("EVT_PARAM2", videoSize.height);
|
||||
onPlayEvent(TXLiveConstants.PLAY_EVT_CHANGE_RESOLUTION, bundle);
|
||||
onPlayEvent(4, bundle);
|
||||
// onPlayEvent(TXLiveConstants.PLAY_EVT_CHANGE_RESOLUTION, bundle);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRenderedFirstFrame() {
|
||||
Player.Listener.super.onRenderedFirstFrame();
|
||||
onPlayEvent(TXLiveConstants.PLAY_EVT_RCV_FIRST_I_FRAME, null);
|
||||
onPlayEvent(5, null);
|
||||
// onPlayEvent(TXLiveConstants.PLAY_EVT_RCV_FIRST_I_FRAME, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -133,7 +137,7 @@ public class VideoPlayViewHolder extends AbsViewHolder implements View.OnClickLi
|
||||
LogUtils.e(error);
|
||||
}
|
||||
});
|
||||
mTXCloudVideoView.setPlayer(mPlayer);
|
||||
mPlayView.setPlayer(mPlayer);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -141,19 +145,19 @@ public class VideoPlayViewHolder extends AbsViewHolder implements View.OnClickLi
|
||||
*/
|
||||
public void onPlayEvent(int e, Bundle bundle) {
|
||||
switch (e) {
|
||||
case TXLiveConstants.PLAY_EVT_PLAY_BEGIN://加载完成,开始播放的回调
|
||||
case 1://加载完成,开始播放的回调
|
||||
mStartPlay = true;
|
||||
if (mActionListener != null) {
|
||||
mActionListener.onPlayBegin();
|
||||
}
|
||||
|
||||
break;
|
||||
case TXLiveConstants.PLAY_EVT_PLAY_LOADING: //开始加载的回调
|
||||
case 2: //开始加载的回调
|
||||
if (mActionListener != null) {
|
||||
mActionListener.onPlayLoading();
|
||||
}
|
||||
break;
|
||||
case TXLiveConstants.PLAY_EVT_PLAY_END://获取到视频播放完毕的回调
|
||||
case 3://获取到视频播放完毕的回调
|
||||
replay();
|
||||
if (!mEndPlay) {
|
||||
mEndPlay = true;
|
||||
@@ -162,7 +166,7 @@ public class VideoPlayViewHolder extends AbsViewHolder implements View.OnClickLi
|
||||
}
|
||||
}
|
||||
break;
|
||||
case TXLiveConstants.PLAY_EVT_RCV_FIRST_I_FRAME://获取到视频首帧回调
|
||||
case 5://获取到视频首帧回调
|
||||
if (mActionListener != null) {
|
||||
mActionListener.onFirstFrame();
|
||||
}
|
||||
@@ -170,7 +174,7 @@ public class VideoPlayViewHolder extends AbsViewHolder implements View.OnClickLi
|
||||
mPlayer.pause();
|
||||
}
|
||||
break;
|
||||
case TXLiveConstants.PLAY_EVT_CHANGE_RESOLUTION://获取到视频宽高回调
|
||||
case 4://获取到视频宽高回调
|
||||
onVideoSizeChanged(bundle.getInt("EVT_PARAM1", 0), bundle.getInt("EVT_PARAM2", 0));
|
||||
break;
|
||||
}
|
||||
@@ -180,17 +184,17 @@ public class VideoPlayViewHolder extends AbsViewHolder implements View.OnClickLi
|
||||
* 获取到视频宽高回调
|
||||
*/
|
||||
public void onVideoSizeChanged(float videoWidth, float videoHeight) {
|
||||
if (mTXCloudVideoView != null && videoWidth > 0 && videoHeight > 0) {
|
||||
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mTXCloudVideoView.getLayoutParams();
|
||||
if (mPlayView != null && videoWidth > 0 && videoHeight > 0) {
|
||||
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) mPlayView.getLayoutParams();
|
||||
int targetH = 0;
|
||||
if (videoWidth / videoHeight > 0.5625f) {//横屏 9:16=0.5625
|
||||
targetH = (int) (mTXCloudVideoView.getWidth() / videoWidth * videoHeight);
|
||||
targetH = (int) (mPlayView.getWidth() / videoWidth * videoHeight);
|
||||
} else {
|
||||
targetH = ViewGroup.LayoutParams.MATCH_PARENT;
|
||||
}
|
||||
if (targetH != params.height) {
|
||||
params.height = targetH;
|
||||
mTXCloudVideoView.requestLayout();
|
||||
mPlayView.requestLayout();
|
||||
}
|
||||
if (mVideoCover != null && mVideoCover.getVisibility() == View.VISIBLE) {
|
||||
mVideoCover.setVisibility(View.INVISIBLE);
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
android:background="#000"
|
||||
>
|
||||
|
||||
<com.tencent.rtmp.ui.TXCloudVideoView
|
||||
<com.google.android.exoplayer2.ui.StyledPlayerView
|
||||
android:id="@+id/video_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
||||
Reference in New Issue
Block a user