ByteRTCMediaPlayer class

Inheritance
  • Object
  • NativeClass
  • ByteRTCMediaPlayer

Constructors

ByteRTCMediaPlayer([NativeClassOptions? options])

Properties

$resource → NativeResource
no setterinherited
hashCode int
The hash code for this object.
no setterinherited
ready Future<void>
Whether the instance is initialized
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

destroy() → void
inherited
getAudioTrackCount() FutureOr<int>
@detail api @brief 获取当前音乐文件的音轨数 @return + >= 0:成功,返回当前音乐文件的音轨数 - < 0:方法调用失败 @note - 仅在音频播放进行状态时,调用此方法。 - 此方法仅支持音乐文件,不支持 PCM 数据。
getPlaybackDuration() FutureOr<int>
@detail api @brief 获取混音音乐文件的实际播放时长,单位为毫秒。 @return - >0: 实际播放时长。 - < 0: 失败。 @note - 实际播放时长指的是歌曲不受停止、跳转、倍速、卡顿影响的播放时长。例如,若歌曲正常播放到 1:30 时停止播放 30s 或跳转进度到 2:00, 随后继续正常播放 2 分钟,则实际播放时长为 3 分 30 秒。 - 仅在音频播放进行状态,且 setProgressInterval:{@link #ByteRTCMediaPlayer#setProgressInterval} 设置间隔大于 0 时,调用此方法。 - 此接口仅支持音频文件,不支持 PCM 数据。
getPosition() FutureOr<int>
@detail api @brief 获取音乐文件播放进度。 @return - >0: 成功, 音乐文件播放进度,单位为毫秒。 - < 0: 失败 @note - 仅在音频播放进行状态时,调用此方法。 - 此接口仅支持音频文件,不支持 PCM 数据。
getState() FutureOr<ByteRTCPlayerState>
@valid since 3.59 @detail api @author wangfeng.1004 @brief 获取播放器状态 @return 播放器当前状态,参看 ByteRTCPlayerState{@link #ByteRTCPlayerState}。 @note 仅在音频实例创建后,调用此方法。
getTotalDuration() FutureOr<int>
@detail api @brief 获取音乐文件时长。 @return - >0: 成功, 音乐文件时长,单位为毫秒。 - < 0: 失败 @note - 仅在音频播放进行状态时,调用此方法。 - 此接口仅支持音频文件,不支持 PCM 数据。
getVolume(ByteRTCAudioMixingType type) FutureOr<int>
@detail api @brief 获取当前音量 @param type 详见 ByteRTCAudioMixingType{@link #ByteRTCAudioMixingType}。 @return - >0: 成功, 当前音量值。 - < 0: 失败 @note 仅在音频播放进行状态时,调用此方法。包括音乐文件混音和 PCM 混音。
nativeCall<T>(String method, [List? args, NativeMethodMeta? meta]) Future<T>
Call instance method
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
open(NSString filePath, ByteRTCMediaPlayerConfig config) FutureOr<int>
@detail api @brief 打开音乐文件。
一个播放器实例仅能够同时打开一个音乐文件。如果需要同时打开多个音乐文件,请创建多个音乐播放器实例。
要播放 PCM 格式的音频数据,参看 openWithCustomSource:config:{@link #ByteRTCMediaPlayer#openWithCustomSource:config}。openWithCustomSource 和此 API 互斥。 @param filePath 音乐文件路径。
支持在线文件的 URL、本地文件的 URI、或本地文件的绝对路径。对于在线文件的 URL,仅支持 https 协议。
推荐的采样率:8KHz、16KHz、22.05KHz、44.1KHz、48KHz。
不同平台支持的本地文件格式:
openWithCustomSource(ByteRTCMediaPlayerCustomSource source, ByteRTCMediaPlayerConfig config) FutureOr<int>
@detail api @brief 启动音频裸数据混音。
要播放音乐文件,参看 open:config:{@link #ByteRTCMediaPlayer#open:config}。open 与此 API 互斥。 @param source 数据源,详见 ByteRTCMediaPlayerCustomSource{@link #ByteRTCMediaPlayerCustomSource} @param config 详见 ByteRTCMediaPlayerConfig{@link #ByteRTCMediaPlayerConfig} @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note - 调用本方法启动后,再调用 pushExternalAudioFrame:{@link #ByteRTCEngine#pushExternalAudioFrame} 推送音频数据,才会开始混音。 - 如要结束 PCM 音频数据混音,调用 stop{@link #ByteRTCMediaPlayer#stop}。
pause() FutureOr<int>
@detail api @brief 调用 open:config:{@link #ByteRTCMediaPlayer#open:config},或 start{@link #ByteRTCMediaPlayer#start} 开始播放音频文件后,调用本方法暂停播放。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note
pushExternalAudioFrame(ByteRTCAudioFrame audioFrame) FutureOr<int>
@detail api @brief 推送用于混音的 PCM 音频帧数据 @param audioFrame 音频帧,详见 ByteRTCAudioFrame{@link #ByteRTCAudioFrame}。
- 音频采样格式必须为 S16。音频缓冲区内的数据格式必须为 PCM,其容量大小应该为 audioFrame.samples × audioFrame.channel × 2。 - 必须指定具体的采样率和声道数,不支持设置为自动。 @return - 0: 成功 - < 0: 失败 @note - 调用该方法前,须通过 openWithCustomSource:config:{@link #ByteRTCMediaPlayer#openWithCustomSource:config} 启动外部音频流混音。 - 使用参考建议:首次推送数据,请在应用侧先缓存一定数据(如 200 毫秒),然后一次性推送过去;此后的推送操作定时 10 毫秒一次,并且每次的音频数据量为 10 毫秒数据量。 - 如果要暂停播放,暂停推送即可。
registerAudioFrameObserver(id<ByteRTCMediaPlayerAudioFrameObserver> observer) FutureOr<int>
@detail api @brief 注册回调句柄以在本地音乐文件混音时,收到相关回调。 @param observer 参看 ByteRTCMediaPlayerAudioFrameObserver{@link #ByteRTCMediaPlayerAudioFrameObserver}。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note 此接口仅支持音频文件,不支持 PCM 数据。
resume() FutureOr<int>
@detail api @brief 调用 pause{@link #ByteRTCMediaPlayer#pause} 暂停音频播放后,调用本方法恢复播放。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note 此接口仅支持音频文件,不支持 PCM 数据。
selectAudioTrack(int index) FutureOr<int>
@detail api @brief 指定当前音乐文件的播放音轨 @param index 指定的播放音轨,从 0 开始,取值范围为 [0, getAudioTrackCount()-1]
设置的参数值需要小于 getAudioTrackCount{@link #ByteRTCMediaPlayer#getAudioTrackCount} 的返回值 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note - 仅在音频播放进行状态时,调用此方法。 - 此方法仅支持音乐文件,不支持 PCM 数据。 - 调用本接口后,会收到 onMediaPlayerEvent:event:message:{@link #ByteRTCMediaPlayerEventHandler#onMediaPlayerEvent:event:message} 回调。
sendInstanceGet<T>(String property) Future<T>
Get instance property
inherited
sendInstancePropertiesGet(dynamic nativeClass) Future<Map<String, dynamic>>
Get instance properties
inherited
sendInstanceSet(String property, dynamic value) Future<void>
Set instance property
inherited
setAudioDualMonoMode(ByteRTCAudioMixingDualMonoMode mode) FutureOr<int>
@detail api @brief 设置当前音乐文件的声道模式 @param mode 声道模式。默认的声道模式和源文件一致,详见 ByteRTCAudioMixingDualMonoMode{@link #ByteRTCAudioMixingDualMonoMode}。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note - 如果在起播前调用此接口,设置的参数值将被缓存,在起播后生效。 - 仅支持音频文件,不支持 PCM 数据。
setAudioPitch(int pitch) FutureOr<int>
@detail api @brief 开启变调功能,多用于 K 歌场景。 @param pitch 与音乐文件原始音调相比的升高/降低值,取值范围为 [-12,12],默认值为 0。每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note - 如果在起播前调用此接口,设置的参数值将被缓存,在起播后生效。 - 仅支持音乐文件混音,不支持 PCM 数据。
setEventHandler(id<ByteRTCMediaPlayerEventHandler> handler) FutureOr<int>
@detail api @brief 设置回调句柄。 @param handler 参看 ByteRTCMediaPlayerEventHandler{@link #ByteRTCMediaPlayerEventHandler}。 @return - 0: 成功。 - < 0: 失败。
setLoudness(float loudness) FutureOr<int>
@detail api @brief 如果你需要使用 enableVocalInstrumentBalance:{@link #ByteRTCEngine#enableVocalInstrumentBalance} 对音频文件/PCM 音频数据设置音量均衡,你必须通过此接口传入其原始响度。 @param loudness 原始响度,单位:lufs,取值范围为 [-70.0, 0.0]
当设置的值小于 -70.0lufs 时,则默认调整为 -70.0lufs,大于 0.0lufs 时,则不对该响度做音量均衡处理。默认值为 1.0lufs,即不做处理。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note - 如果在起播前调用此接口,设置的参数值将被缓存,在起播后生效。 - 此方法对音频文件和音频裸数据播放都可用。
setPlaybackSpeed(int speed) FutureOr<int>
@detail api @brief 设置播放速度 @param speed 播放速度与原始文件速度的比例,单位:%,取值范围为 [50,200],默认值为 100。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note - 如果在起播前调用此接口,设置的参数值将被缓存,在起播后生效。 - 此方法对音频文件可用,不支持 PCM 数据。
setPosition(int position) FutureOr<int>
@detail api @brief 设置音乐文件的起始播放位置。 @param position 音乐文件起始播放位置,单位为毫秒。
你可以通过 getTotalDuration{@link #ByteRTCMediaPlayer#getTotalDuration} 获取音乐文件总时长,position 的值应小于音乐文件总时长。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note - 此接口仅支持音频文件,不支持 PCM 数据。 - 在播放在线文件时,调用此接口可能造成播放延迟的现象。 - 调用本接口后,会收到 onMediaPlayerEvent:event:message:{@link #ByteRTCMediaPlayerEventHandler#onMediaPlayerEvent:event:message} 回调。
setProgressInterval(int64_t interval) FutureOr<int>
@detail api @brief 设置音频文件混音时,收到 onMediaPlayerPlayingProgress:progress:{@link #ByteRTCMediaPlayerEventHandler#onMediaPlayerPlayingProgress:progress} 的间隔。 @param interval 时间间隔,单位毫秒。
- interval > 0 时,触发回调。实际间隔为 10 的倍数。如果输入数值不能被 10 整除,将自动向上取整。例如传入 52,实际间隔为 60 ms。 - interval <= 0 时,不会触发回调。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note - 如果在起播前调用此接口,设置的参数值将被缓存,在起播后生效。 - 此方法仅支持音频文件,不支持 PCM 数据。
setVolume(int volume, ByteRTCAudioMixingType type) FutureOr<int>
@detail api @brief 调节指定混音的音量大小,包括音乐文件混音和 PCM 混音。 @param volume 播放音量相对原音量的比值。单位为 %。范围为 [0, 400],建议范围是 [0, 100]。带溢出保护。 @param type 详见 ByteRTCAudioMixingType{@link #ByteRTCAudioMixingType}。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note 如果在起播前调用此接口,设置的参数值将被缓存,在起播后生效。
start() FutureOr<int>
@detail api @brief 播放音乐。你仅需要在调用 open:config:{@link #ByteRTCMediaPlayer#open:config},且未开启自动播放时,调用此方法。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明 @note
stop() FutureOr<int>
@detail api @brief 调用 open:config:{@link #ByteRTCMediaPlayer#open:config}, start{@link #ByteRTCMediaPlayer#start}, 或 openWithCustomSource:config:{@link #ByteRTCMediaPlayer#openWithCustomSource:config} 开始播放后,可以调用本方法停止。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ByteRTCReturnStatus{@link #ByteRTCReturnStatus} 获得更多错误说明
toString() String
A string representation of this object.
inherited
updateResource(NativeResource resource) → void
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Properties

codegen_$namespace → dynamic
no setter