public class TuSDKMoviePacketDecoder extends TuSDKMediaDecoder<TuSDKMoviePacketReader>
限定符和类型 | 类和说明 |
---|---|
static class |
TuSDKMoviePacketDecoder.State
State
|
static interface |
TuSDKMoviePacketDecoder.VideoSpeedControlInterface
视频速度控制接口
|
TuSDKMediaDecoder.TuSDKMediaDecoderError
限定符和类型 | 字段和说明 |
---|---|
static int |
INVALID_SEEKTIME_FLAG
标记是否需要 seek to
|
static int |
TIMEOUT_USEC
解码等待时间
|
INVALID_TRACK_FLAG, mAudioDecoder, mDataSource, mMovieReader, mVideoDecoder, TIME_US_BASE
构造器和说明 |
---|
TuSDKMoviePacketDecoder(java.lang.String moviePath)
视频解码
|
TuSDKMoviePacketDecoder(TuSDKMediaDataSource videoDataSource) |
限定符和类型 | 方法和说明 |
---|---|
TuSDKMoviePacketReader |
createMovieReader()
TuSDKMoviePacketReader
|
void |
destroy()
销毁释放视频解码器 (可运行在任意线程)
|
android.media.MediaCodec |
getAudioDecoder()
音频解码器
|
long |
getCurrentSampleTimeUs()
获取当前位置
|
TuSDKVideoInfo |
getOriginalVideoInfo()
获取原始视频信息
|
java.lang.String |
getProcessedFilePath()
获取转码后的视频文件
|
float |
getProgress()
获取解码进度
|
TuSDKMoviePacketReader.ReadMode |
getReadMode()
获取读取模式
|
TuSDKMoviePacketDecoder.State |
getState()
获取状态信息
|
TuSdkTimeRange |
getTimeRange()
获取文件裁剪时间范围
|
android.media.MediaCodec |
getVideoDecoder()
视频解码器
|
TuSDKVideoSurfaceDecodeDelegate |
getVideoDelegate() |
long |
getVideoDurationTimeUS()
获取视频原始时长 单位:ms
|
TuSDKVideoInfo |
getVideoInfo()
获取视频信息
|
org.lasque.tusdk.core.struct.TuSdkSize |
getVideoSize()
获取视频原始尺寸
|
TuSDKVideoSpeedControl |
getVideoSpeedControl()
获取视频帧率控制器
|
protected boolean |
isDecoding()
当前是否正在解码中
|
void |
loadVideoCover()
加载视频封面
|
protected void |
onDecoderComplete()
解码完成
|
protected void |
onDecoderError(TuSDKMediaDecoder.TuSDKMediaDecoderError errorCode)
解码错误
|
protected void |
onVideoDecoderNewFrameAvailable(int bufferIndex,
android.media.MediaCodec.BufferInfo bufferInfo)
解码到视频帧
|
void |
pause()
暂停解码
|
void |
prepare(android.view.Surface mSurface,
TuSdkTimeRange timeRange)
准备开始解码视频
|
void |
seekTo(long timeUs,
int mode)
将视频 seek 至指定位置
|
void |
setDoRender(boolean doRender)
解码后是否渲染
|
void |
setEnableTranscoding(boolean enableTranscoding)
设置是否开启视频转码
|
void |
setLoadDelegate(TuSDKVideoLoadDelegate loadDelegate)
设置加载委托对象
|
void |
setLooping(boolean looping)
是否循环解码(可实现视频循环播放)
|
void |
setReadMode(TuSDKMoviePacketReader.ReadMode readMode)
设置读取模式
READ_MODE_NORMAL 正常模式
READ_MODE_REVERSE 倒序模式
|
protected void |
setState(TuSDKMoviePacketDecoder.State state)
设置状态
|
void |
setTimeEffectController(TuSDKVideoTimeEffectController timeEffectController)
设置时间特效控制器
|
void |
setTranscodingOutputSize(org.lasque.tusdk.core.struct.TuSdkSize transcodingOutputSize)
设置转码后输出的视频尺寸
|
void |
setVideoDelegate(TuSDKVideoSurfaceDecodeDelegate videoDelegate) |
void |
start()
启动视频解码 (可运行在任意线程)
|
void |
stop()
停止视频解码器 (可运行在任意线程)
|
createAudioDecoder, createMediaDecoder, createVideoDecoder, destroyMediaReader, findAudioTrack, findVideoTrack, getAudioTrackFormat, getMediaReader, getVideoFrameIntervalTimeUs, getVideoTrackFormat, seekTo, selectAudioTrack, selectVideoTrack, unselectAudioTrack, unselectVideoTrack
public static final int TIMEOUT_USEC
public static final int INVALID_SEEKTIME_FLAG
public TuSDKMoviePacketDecoder(java.lang.String moviePath)
moviePath
- public TuSDKMoviePacketDecoder(TuSDKMediaDataSource videoDataSource)
public TuSDKVideoInfo getVideoInfo()
public TuSDKVideoInfo getOriginalVideoInfo()
public android.media.MediaCodec getVideoDecoder()
public android.media.MediaCodec getAudioDecoder()
public void setEnableTranscoding(boolean enableTranscoding)
enableTranscoding
- true 将优化视频帧,防止花屏和马赛克public void setTranscodingOutputSize(org.lasque.tusdk.core.struct.TuSdkSize transcodingOutputSize)
transcodingOutputSize
- public java.lang.String getProcessedFilePath()
public TuSDKVideoSpeedControl getVideoSpeedControl()
public TuSDKVideoSurfaceDecodeDelegate getVideoDelegate()
public void setVideoDelegate(TuSDKVideoSurfaceDecodeDelegate videoDelegate)
videoDelegate
- the mVideoDelegate to setpublic void setLoadDelegate(TuSDKVideoLoadDelegate loadDelegate)
loadDelegate
- 加载委托对象public void setReadMode(TuSDKMoviePacketReader.ReadMode readMode)
public TuSDKMoviePacketReader.ReadMode getReadMode()
public void setTimeEffectController(TuSDKVideoTimeEffectController timeEffectController)
public long getVideoDurationTimeUS()
public TuSdkTimeRange getTimeRange()
public long getCurrentSampleTimeUs()
getCurrentSampleTimeUs
在接口中 TuSDKMediaDecoderInterface
getCurrentSampleTimeUs
在类中 TuSDKMediaDecoder<TuSDKMoviePacketReader>
public org.lasque.tusdk.core.struct.TuSdkSize getVideoSize()
public void setLooping(boolean looping)
looping
- true:循环解码public void setDoRender(boolean doRender)
doRender
- protected void setState(TuSDKMoviePacketDecoder.State state)
state
- public TuSDKMoviePacketDecoder.State getState()
protected boolean isDecoding()
public void prepare(android.view.Surface mSurface, TuSdkTimeRange timeRange)
mSurface
- Output SurfacetimeRange
- 视频文件裁剪范围(指定解码区间)protected void onDecoderError(TuSDKMediaDecoder.TuSDKMediaDecoderError errorCode)
onDecoderError
在类中 TuSDKMediaDecoder<TuSDKMoviePacketReader>
errorCode
- protected void onDecoderComplete()
public void loadVideoCover()
public void start()
start
在接口中 TuSDKMediaDecoderInterface
start
在类中 TuSDKMediaDecoder<TuSDKMoviePacketReader>
public void pause()
public void stop()
stop
在接口中 TuSDKMediaDecoderInterface
stop
在类中 TuSDKMediaDecoder<TuSDKMoviePacketReader>
public void seekTo(long timeUs, int mode)
seekTo
在类中 TuSDKMediaDecoder<TuSDKMoviePacketReader>
timeUs
- 设置当前帧 单位: 微妙mode
- SEEK_TO_CLOSEST_SYNC
SEEK_TO_NEXT_SYNCpublic TuSDKMoviePacketReader createMovieReader()
createMovieReader
在类中 TuSDKMediaDecoder<TuSDKMoviePacketReader>
public void destroy()
destroy
在接口中 TuSDKMediaDecoderInterface
destroy
在类中 TuSDKMediaDecoder<TuSDKMoviePacketReader>
public float getProgress()
protected void onVideoDecoderNewFrameAvailable(int bufferIndex, android.media.MediaCodec.BufferInfo bufferInfo)
bufferIndex
- bufferInfo
-