public class TuSDKMovieFrameDecoder extends TuSDKMediaDecoder
限定符和类型 | 类和说明 |
---|---|
static class |
TuSDKMovieFrameDecoder.TuSDKMovieDecoderError
解码器错误信息
|
TuSDKMediaDecoder.TuSDKMediaDecoderError
限定符和类型 | 字段和说明 |
---|---|
static int |
COLOR_FormatI420 |
static int |
COLOR_FormatNV21 |
static int |
INVALID_SEEKTIME_FLAG
标记是否需要 seek to
|
static int |
TIMEOUT_USEC
解码等待时间
|
INVALID_TRACK_FLAG, mAudioDecoder, mDataSource, mMovieReader, mVideoDecoder, TIME_US_BASE
构造器和说明 |
---|
TuSDKMovieFrameDecoder(TuSDKMediaDataSource videoDataSource) |
限定符和类型 | 方法和说明 |
---|---|
TuSDKMovieReader |
createMovieReader()
初始化MediaExtractor 用于读取音视频信息
|
void |
destroy()
销毁释放视频解码器 (可运行在任意线程)
|
android.media.MediaCodec |
getAudioDecoder()
音频解码器
|
long |
getCurrentSampleTimeUs()
获取当前位置
|
float |
getProgress()
获取解码进度
|
TuSdkTimeRange |
getTimeRange()
获取文件裁剪时间范围
|
android.media.MediaCodec |
getVideoDecoder()
视频解码器
|
TuSDKVideoFrameDecodeDelegate |
getVideoDelegate() |
long |
getVideoDuration()
获取视频持续时长 单位:s
|
long |
getVideoDurationTimeUS()
获取视频原始时长 单位:ms
|
TuSDKVideoInfo |
getVideoInfo()
获取视频信息
|
org.lasque.tusdk.core.struct.TuSdkSize |
getVideoSize()
获取视频原始尺寸
|
protected void |
onDecoderComplete()
解码完成
|
protected void |
onDecoderError(TuSDKMediaDecoder.TuSDKMediaDecoderError error)
遇到错误
|
protected void |
onVideoDecoderNewFrameAvailable(int bufferIndex,
android.media.MediaCodec.BufferInfo bufferInfo)
解码得到帧数据
|
void |
pause()
暂停解码
|
void |
prepare(TuSdkTimeRange timeRange,
boolean isDecordMovieAudio)
准备开始解码视频
|
void |
seekTimeUs(long seekTimeUs)
设置播放起始播放时间
|
void |
seekTo(long timeUs,
int mode)
指定播放的位置
|
void |
setAudioPacketDelegate(TuSDKAudioPacketDelegate audioaPacketDelegate)
音频数据包(未解码数据)
|
void |
setLooping(boolean looping)
是否循环解码(可实现视频循环播放)
|
void |
setVideoDelegate(TuSDKVideoFrameDecodeDelegate videoDelegate) |
void |
start()
启动视频解码 (可运行在任意线程)
|
void |
stop()
停止视频解码器 (可运行在任意线程)
|
createAudioDecoder, createMediaDecoder, createVideoDecoder, destroyMediaReader, findAudioTrack, findVideoTrack, getAudioTrackFormat, getMediaReader, getVideoFrameIntervalTimeUs, getVideoTrackFormat, seekTo, selectAudioTrack, selectVideoTrack, unselectAudioTrack, unselectVideoTrack
public static final int COLOR_FormatI420
public static final int COLOR_FormatNV21
public static final int TIMEOUT_USEC
public static final int INVALID_SEEKTIME_FLAG
public TuSDKMovieFrameDecoder(TuSDKMediaDataSource videoDataSource)
public TuSDKVideoInfo getVideoInfo()
public android.media.MediaCodec getVideoDecoder()
public android.media.MediaCodec getAudioDecoder()
public TuSDKVideoFrameDecodeDelegate getVideoDelegate()
public void setVideoDelegate(TuSDKVideoFrameDecodeDelegate videoDelegate)
videoDelegate
- the mVideoDelegate to setpublic void setAudioPacketDelegate(TuSDKAudioPacketDelegate audioaPacketDelegate)
audioaPacketDelegate
- public long getVideoDurationTimeUS()
public long getVideoDuration()
public TuSdkTimeRange getTimeRange()
public void seekTimeUs(long seekTimeUs)
seekTimeUs
- public long getCurrentSampleTimeUs()
getCurrentSampleTimeUs
在接口中 TuSDKMediaDecoderInterface
getCurrentSampleTimeUs
在类中 TuSDKMediaDecoder
public org.lasque.tusdk.core.struct.TuSdkSize getVideoSize()
public void setLooping(boolean looping)
looping
- true:循环解码public void prepare(TuSdkTimeRange timeRange, boolean isDecordMovieAudio)
timeRange
- 视频文件裁剪范围(指定解码区间)isDecordMovieAudio
- 是否解码音频public TuSDKMovieReader createMovieReader()
TuSDKMediaDecoder
createMovieReader
在类中 TuSDKMediaDecoder
protected void onDecoderError(TuSDKMediaDecoder.TuSDKMediaDecoderError error)
TuSDKMediaDecoder
onDecoderError
在类中 TuSDKMediaDecoder
protected void onDecoderComplete()
public void start()
start
在接口中 TuSDKMediaDecoderInterface
start
在类中 TuSDKMediaDecoder
public void pause()
public void stop()
stop
在接口中 TuSDKMediaDecoderInterface
stop
在类中 TuSDKMediaDecoder
public void destroy()
destroy
在接口中 TuSDKMediaDecoderInterface
destroy
在类中 TuSDKMediaDecoder
public float getProgress()
public void seekTo(long timeUs, int mode)
seekTo
在类中 TuSDKMediaDecoder
timeUs
- 设置当前帧 单位: 微妙mode
- SEEK_TO_CLOSEST_SYNC
SEEK_TO_NEXT_SYNC
SEEK_TO_PREVIOUS_SYNCprotected void onVideoDecoderNewFrameAvailable(int bufferIndex, android.media.MediaCodec.BufferInfo bufferInfo)
bufferIndex
- 数据缓冲区索引bufferInfo
- 数据新