产品动态
关于短视频 SDK “startPlay”接口名变更的公告
类名 | 功能 |
TXVideoInfoReader | 媒体信息获取 |
TXVideoEditer | 视频编辑 |
/*** 获取视频信息* @param videoPath 视频文件路径* @return*/public TXVideoEditConstants.TXVideoInfo getVideoFileInfo(String videoPath);
public final static class TXVideoInfo {public Bitmap coverImage; // 视频首帧图片public long duration; // 视频时长(ms)public long fileSize; // 视频大小(byte)public float fps; // 视频 fpspublic int bitrate; // 视频码率 (kbps)public int width; // 视频宽度public int height; // 视频高度public int audioSampleRate; // 音频码率}
//sourcePath 为视频源路径String sourcePath = Environment.getExternalStorageDirectory() + File.separator + "temp.mp4";TXVideoEditConstants.TXVideoInfo info = TXVideoInfoReader.getInstance().getVideoFileInfo(sourcePath);
/*** 获取缩略图列表* @param count 缩略图张数* @param width 缩略图宽度* @param height 缩略图高度* @param fast 缩略图是否关键帧的图片* @param listener 缩略图的回调函数*/public void getThumbnail(int count, int width, int height, boolean fast, TXThumbnailListener listener)
mTXVideoEditer.getThumbnail(TCVideoEditerWrapper.mThumbnailCount, 100, 100, false, mThumbnailListener);private TXVideoEditer.TXThumbnailListener mThumbnailListener = new TXVideoEditer.TXThumbnailListener() {@Overridepublic void onThumbnail(int index, long timeMs, final Bitmap bitmap) {Log.i(TAG, "onThumbnail: index = " + index + ",timeMs:" + timeMs);//将缩略图放入图片控件上}};
List<Long> list = new ArrayList<>();list.add(10000L);list.add(12000L);list.add(13000L);list.add(14000L);list.add(15000L);TXVideoEditer txVideoEditer = new TXVideoEditer(TCVideoPreviewActivity.this);txVideoEditer.setVideoPath(mVideoPath);txVideoEditer.setThumbnailListener(new TXVideoEditer.TXThumbnailListener() {@Overridepublic void onThumbnail(int index, long timeMs, Bitmap bitmap) {Log.i(TAG, "bitmap:" + bitmap + ",timeMs:" + timeMs);saveBitmap(bitmap, timeMs);}});txVideoEditer.getThumbnailList(list, 200, 200);
/*** 设置预处理输出的缩略图*/public void setThumbnail(TXVideoEditConstants.TXThumbnail thumbnail)
/*** 设置预处理输出缩略图回调* @param listener*/public void setThumbnailListener(TXThumbnailListener listener)
/*** 设置视频预处理回调* @param listener*/public void setVideoProcessListener(TXVideoProcessListener listener)
public void processVideo();
int thumbnailCount = 10; //可以根据视频时长生成缩略图个数TXVideoEditConstants.TXThumbnail thumbnail = new TXVideoEditConstants.TXThumbnail();thumbnail.count = thumbnailCount;thumbnail.width = 100; // 输出缩略图宽thumbnail.height = 100; // 输出缩略图高mTXVideoEditer.setThumbnail(thumbnail); // 设置预处理生成的缩略图mTXVideoEditer.setThumbnailListener(mThumbnailListener); // 设置缩略图回调mTXVideoEditer.setVideoProcessListener(this); // 视频预处理进度回调mTXVideoEditer.processVideo(); // 进行预处理
public void initWithPreview(TXVideoEditConstants.TXPreviewParam param)
public final static int PREVIEW_RENDER_MODE_FILL_SCREEN = 1; // 填充模式,尽可能充满屏幕不留黑边,所以可能会裁剪掉一部分画面public final static int PREVIEW_RENDER_MODE_FILL_EDGE = 2; // 适应模式,尽可能保持画面完整,但当宽高比不合适时会有黑边出现
public void previewAtTime(long timeMs);
// 播放某一时间段的视频,从 startTime 到 endTime 的视频片段public void startPlayFromTime(long startTime, long endTime);
// 暂停播放视频public void pausePlay();// 继续播放视频public void resumePlay();// 停止播放视频public void stopPlay();
void setFilter(Bitmap bmp)
void setSpecialRatio(float specialRatio)
void setFilter(Bitmap leftBitmap, float leftIntensity, Bitmap rightBitmap, float rightIntensity, float leftRatio)
public void setWaterMark(Bitmap waterMark, TXVideoEditConstants.TXRect rect);
TXVideoEditConstants.TXRect rect = new TXVideoEditConstants.TXRect();rect.x = 0.5f;rect.y = 0.5f;rect.width = 0.5f;mTXVideoEditer.setWaterMark(mWaterMarkLogo, rect);
setTailWaterMark(Bitmap tailWaterMark, TXVideoEditConstants.TXRect txRect, int duration);
Bitmap tailWaterMarkBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.tcloud_logo);TXVideoEditConstants.TXRect txRect = new TXVideoEditConstants.TXRect();txRect.x = (mTXVideoInfo.width - tailWaterMarkBitmap.getWidth()) / (2f * mTXVideoInfo.width);txRect.y = (mTXVideoInfo.height - tailWaterMarkBitmap.getHeight()) / (2f * mTXVideoInfo.height);txRect.width = tailWaterMarkBitmap.getWidth() / (float) mTXVideoInfo.width;mTXVideoEditer.setTailWaterMark(tailWaterMarkBitmap, txRect, 3);
public void setVideoBitrate(int videoBitrate);
/*** 设置视频剪切范围* @param startTime 视频剪切的开始时间(ms)* @param endTime 视频剪切的结束时间(ms)*/public void setCutFromTime(long startTime, long endTime)// ...// 生成最终的视频文件public void generateVideo(int videoCompressed, String videoOutputPath)
VIDEO_COMPRESSED_360P ——压缩至360P分辨率(360*640)VIDEO_COMPRESSED_480P ——压缩至480P分辨率(640*480)VIDEO_COMPRESSED_540P ——压缩至540P分辨率 (960*540)VIDEO_COMPRESSED_720P ——压缩至720P分辨率 (1280*720)VIDEO_COMPRESSED_1080P ——压缩至1080P分辨率 (1920*1080)
文档反馈