public class TuSdkMediaFileEncoder
extends java.lang.Object
限定符和类型 | 字段和说明 |
---|---|
static int |
TRANS_STATE_STARTED |
static int |
TRANS_STATE_STOPPED |
static int |
TRANS_STATE_UNINITIALIZED |
构造器和说明 |
---|
TuSdkMediaFileEncoder() |
限定符和类型 | 方法和说明 |
---|---|
void |
autoFillAudioMuteData(long startTimeUs,
long endTimeUs,
boolean isEos)
自动填充静音数据
|
boolean |
cleanTemp()
执行成功后清理缓存
|
void |
disconnect()
断开外部滤镜桥接器连接
|
protected void |
finalize() |
TuSdkAudioEncoder |
getAudioEncoder()
音频编码器
|
TuSdkAudioEncodecOperation |
getAudioOperation()
音频编码器
|
TuSdkFilterBridge |
getFilterBridge()
滤镜桥接对象用于外部处理过程
|
TuSdkAudioInfo |
getOutputAudioInfo()
获取输出音频信息
|
org.lasque.tusdk.core.struct.TuSdkMediaDataSource |
getOutputDataSource()
输出文件路径
|
org.lasque.tusdk.core.struct.TuSdkSize |
getOutputSize()
输出屏幕宽高
|
TuSdkVideoSurfaceEncoder |
getVideoEncoder()
视频Surface编码器
|
TuSdkEncodecOperation |
getVideoOperation()
视频编码器
|
boolean |
hasAudioEncoder()
是否存在音频编码器
|
boolean |
hasVideoEncoder()
是否存在视频编码器
|
boolean |
prepare(android.opengl.EGLContext sharedContext)
准备初始化
如果有共享 EGLContext 将创建异步环境
|
boolean |
prepare(android.opengl.EGLContext sharedContext,
boolean disableCompatibility)
准备初始化
如果有共享 EGLContext 将创建异步环境
|
void |
release()
释放资源
|
void |
requestVideoKeyFrame()
Request that the encoder produce a sync frame "soon".
|
void |
requestVideoRender(long frameTimeNs)
request Render
|
void |
setAudioRender(TuSdkAudioRender audioRender)
音频渲染接口
|
void |
setCanvasRect(android.graphics.RectF canvasRect)
画布绘制区域(百分比) eg: 长宽为1时即为全屏绘制,否则按输入方位留边
|
void |
setFilterBridge(TuSdkFilterBridge bridge)
滤镜桥接对象用于外部处理过程
|
void |
setListener(TuSdkVideoSurfaceEncoderListener videoListener,
TuSdkEncoderListener audioListener)
设置编码监听器
|
void |
setMediaSync(TuSdkMediaEncodecSync sync)
媒体编码同步器接口
|
int |
setOutputAudioFormat(android.media.MediaFormat audioFormat)
输出音频格式 不设置音频就直接转视频
|
void |
setOutputFilePath(java.lang.String filePath)
设置输出文件路径
|
void |
setOutputOrientation(ImageOrientation orientation)
设置输出视频方向, 需要设置编码器前就确定正确输出方向的宽高
|
int |
setOutputVideoFormat(android.media.MediaFormat videoFormat)
输出视频格式
|
void |
setSurfacePause(boolean isPause)
设置暂停视频编码
|
void |
setSurfaceRender(TuSdkSurfaceRender externalRender)
外部渲染接口
|
void |
setWatermark(org.lasque.tusdk.core.seles.sources.SelesWatermark watermark)
设置水印
|
void |
signalAudioEndOfInputStream(long timeUs)
Signals end-of-stream on input.
|
void |
signalVideoEndOfInputStream()
Signals end-of-stream on input.
|
public static final int TRANS_STATE_UNINITIALIZED
public static final int TRANS_STATE_STARTED
public static final int TRANS_STATE_STOPPED
public TuSdkAudioEncoder getAudioEncoder()
public TuSdkVideoSurfaceEncoder getVideoEncoder()
public boolean hasVideoEncoder()
public boolean hasAudioEncoder()
public org.lasque.tusdk.core.struct.TuSdkMediaDataSource getOutputDataSource()
public TuSdkFilterBridge getFilterBridge()
public void setFilterBridge(TuSdkFilterBridge bridge)
public void disconnect()
public void setSurfacePause(boolean isPause)
public org.lasque.tusdk.core.struct.TuSdkSize getOutputSize()
public TuSdkEncodecOperation getVideoOperation()
public TuSdkAudioEncodecOperation getAudioOperation()
public void setWatermark(org.lasque.tusdk.core.seles.sources.SelesWatermark watermark)
public void setOutputOrientation(ImageOrientation orientation)
public void setCanvasRect(android.graphics.RectF canvasRect)
public void setOutputFilePath(java.lang.String filePath)
public int setOutputVideoFormat(android.media.MediaFormat videoFormat)
videoFormat
- 视频格式public int setOutputAudioFormat(android.media.MediaFormat audioFormat)
audioFormat
- 音频格式public TuSdkAudioInfo getOutputAudioInfo()
public void setSurfaceRender(TuSdkSurfaceRender externalRender)
public void setAudioRender(TuSdkAudioRender audioRender)
public void setMediaSync(TuSdkMediaEncodecSync sync)
public void setListener(TuSdkVideoSurfaceEncoderListener videoListener, TuSdkEncoderListener audioListener)
videoListener
- 视频解码监听器audioListener
- 音频解码监听器public void release()
protected void finalize() throws java.lang.Throwable
finalize
在类中 java.lang.Object
java.lang.Throwable
public boolean cleanTemp()
public boolean prepare(android.opengl.EGLContext sharedContext)
sharedContext
- 共享 EGL contextpublic boolean prepare(android.opengl.EGLContext sharedContext, boolean disableCompatibility)
sharedContext
- 共享 EGL contextdisableCompatibility
- 关闭兼容模式 [兼容模式是为了解决小米Note编码器转码启动错误, 录制时可以关闭]public void signalVideoEndOfInputStream()
java.lang.IllegalStateException
- if not in the Executing state.MediaCodec.CodecException
- upon codec error.public void requestVideoKeyFrame()
public void requestVideoRender(long frameTimeNs)
frameTimeNs
- 时间戳(纳秒)public void signalAudioEndOfInputStream(long timeUs)
PS:使用buffer写入时必须要写正确的结束时间,否则造成视频编码错误,奔溃或无法拖动
timeUs
- 结束时间戳 [微秒]public void autoFillAudioMuteData(long startTimeUs, long endTimeUs, boolean isEos)
startTimeUs
- 开始时间 [微秒]endTimeUs
- 结束时间 [微秒]isEos
- 是否为结尾 [如果为结尾将自动使用结束时间结束编码]