MediaPlayer class
@brief 媒体播放器
- Inheritance
-
- Object
- PackClass
- IMediaPlayer
- MediaPlayer
Constructors
- MediaPlayer(int playerId)
Properties
Methods
-
$createInstance(
List args) → dynamic -
Factory method for creating instances
override
-
$destroy(
) → void -
inherited
-
$init(
List args) → void -
inherited
-
findOverrideIndices(
List args, List< List< indicesList) → List<int> >int> -
查找重载参数下标列表
@desc android 构造函数存在重载
此方法通过实际传入参数与构造函数参数列表集合的比对,来获取当前实际的需要使用的参数列表
inherited
-
fn2AndroidClass(
Function callback, dynamic nativeClass(), String methodName) → dynamic -
与 ts runtime 中的 fn2AndroidClass 功能一致
将 Dart 函数转换为 Android 回调类实例供 Android 侧使用
inherited
-
getAudioTrackCount(
) → Future< int?> -
@detail api
@brief 获取当前音乐文件的音轨数
@return + >= 0:成功,返回当前音乐文件的音轨数
- < 0:方法调用失败
@note
- 仅在音频播放进行状态时,调用此方法。
- 此方法仅支持音乐文件,不支持 PCM 数据。
inherited
-
getPlaybackDuration(
) → Future< int?> -
@detail api
@brief 获取混音音乐文件的实际播放时长,单位为毫秒。
@return
- >0: 实际播放时长。
- < 0: 失败。
@note
- 实际播放时长指的是歌曲不受停止、跳转、倍速、卡顿影响的播放时长。例如,若歌曲正常播放到 1:30 时停止播放 30s 或跳转进度到 2:00, 随后继续正常播放 2 分钟,则实际播放时长为 3 分 30 秒。
- 仅在音频播放进行状态,且 setProgressInterval{@link #IMediaPlayer#setProgressInterval} 设置间隔大于
0时,调用此方法。 - 此接口仅支持音频文件,不支持 PCM 数据。inherited -
getPosition(
) → Future< int?> -
@detail api
@brief 获取音乐文件播放进度。
@return
- >0: 成功, 音乐文件播放进度,单位为毫秒。
- < 0: 失败
@note
- 仅在音频播放进行状态时,调用此方法。
- 此接口仅支持音频文件,不支持 PCM 数据。
inherited
-
getState(
) → Future< PlayerState> -
@brief 获取媒体播放器状态
override
-
getTotalDuration(
) → Future< int?> -
@detail api
@brief 获取音乐文件时长。
@return
- >0: 成功, 音乐文件时长,单位为毫秒。
- < 0: 失败
@note
- 仅在音频播放进行状态时,调用此方法。
- 此接口仅支持音频文件,不支持 PCM 数据。
inherited
-
getVolume(
AudioMixingType type) → Future< int?> -
@detail api
@brief 获取当前音量
@param type 详见 AudioMixingType{@link #AudioMixingType}。
@return
- >0: 成功, 当前音量值。
- < 0: 失败
@note 仅在音频播放进行状态时,调用此方法。包括音乐文件混音和 PCM 混音。
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
open(
string filePath, MediaPlayerConfig config) → Future< int?> -
@detail api
@brief 打开音乐文件。
一个播放器实例仅能够同时打开一个音乐文件。如果需要同时打开多个音乐文件,请创建多个音乐播放器实例。
要播放 PCM 格式的音频数据,参看 openWithCustomSource{@link #IMediaPlayer#openWithCustomSource}。openWithCustomSource和此 API 互斥。 @param filePath 音乐文件路径。
支持在线文件的 URL、本地文件的 URI、本地文件的绝对路径或以/assets/开头的本地文件路径。对于在线文件的 URL,仅支持 https 协议。
推荐的采样率:8KHz、16KHz、22.05KHz、44.1KHz、48KHz。
不同平台支持的本地文件格式:
inherited -
openWithCustomSource(
MediaPlayerCustomSource source, MediaPlayerConfig config) → Future< int?> -
@detail api
@brief 启动音频裸数据混音。
要播放音乐文件,参看 open{@link #IMediaPlayer#open}。open与此 API 互斥。 @param source 数据源,详见 MediaPlayerCustomSource{@link #MediaPlayerCustomSource} @param config 详见 MediaPlayerConfig{@link #MediaPlayerConfig} @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note - 调用本方法启动后,再调用 pushExternalAudioFrame{@link #IMediaPlayer#pushExternalAudioFrame} 推送音频数据,才会开始混音。 - 如要结束 PCM 音频数据混音,调用 stop{@link #IMediaPlayer#stop}。inherited -
pause(
) → Future< int?> -
@detail api
@brief 调用 open{@link #IMediaPlayer#open},或 start{@link #IMediaPlayer#start} 开始播放音频文件后,调用本方法暂停播放。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明
@note
- 调用本方法暂停播放后,可调用 resume{@link #IMediaPlayer#resume} 恢复播放。
- 此接口仅支持音频文件,不支持 PCM 数据。
inherited
-
pushExternalAudioFrame(
AudioFrame audioFrame) → Future< int?> -
@detail api
@brief 推送用于混音的 PCM 音频帧数据
@param audioFrame 音频帧,详见 AudioFrame{@link #AudioFrame}。
- 音频采样格式必须为 S16。音频缓冲区内的数据格式必须为 PCM,其容量大小应该为audioFrame.samples × audioFrame.channel × 2。 - 必须指定具体的采样率和声道数,不支持设置为自动。 @return - 0: 成功 - < 0: 失败 @note - 调用该方法前,须通过 openWithCustomSource{@link #IMediaPlayer#openWithCustomSource} 启动外部音频流混音。 - 使用参考建议:首次推送数据,请在应用侧先缓存一定数据(如 200 毫秒),然后一次性推送过去;此后的推送操作定时 10 毫秒一次,并且每次的音频数据量为 10 毫秒数据量。 - 如果要暂停播放,暂停推送即可。inherited -
registerAudioFrameObserver(
IMediaPlayerAudioFrameObserver observer) → Future< int?> -
@detail api
@brief 注册回调句柄以在本地音乐文件混音时,收到相关回调。
@param observer 参看 IMediaPlayerAudioFrameObserver{@link #IMediaPlayerAudioFrameObserver}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明
@note
此接口仅支持音频文件,不支持 PCM 数据。
inherited
-
resume(
) → Future< int?> -
@detail api
@brief 调用 pause{@link #IMediaPlayer#pause} 暂停音频播放后,调用本方法恢复播放。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明
@note
此接口仅支持音频文件,不支持 PCM 数据。
inherited
-
selectAudioTrack(
int index) → Future< int?> -
@detail api
@brief 指定当前音乐文件的播放音轨
@param index 指定的播放音轨,从 0 开始,取值范围为
[0, getAudioTrackCount()-1]。
设置的参数值需要小于 getAudioTrackCount{@link #IMediaPlayer#getAudioTrackCount} 的返回值 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note - 仅在音频播放进行状态时,调用此方法。 - 此方法仅支持音乐文件,不支持 PCM 数据。 - 调用本接口后,会收到 onMediaPlayerEvent{@link #IMediaPlayerEventHandler#onMediaPlayerEvent} 回调。inherited -
setAudioDualMonoMode(
AudioMixingDualMonoMode mode) → Future< int?> -
@detail api
@brief 设置当前音乐文件的声道模式
@param mode 声道模式。默认的声道模式和源文件一致,详见 AudioMixingDualMonoMode{@link #AudioMixingDualMonoMode}。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明
@note
- 如果在起播前调用此接口,设置的参数值将被缓存,在起播后生效。
- 仅支持音频文件,不支持 PCM 数据。
inherited
-
setAudioPitch(
int pitch) → Future< int?> -
@detail api
@brief 开启变调功能,多用于 K 歌场景。
@param pitch 与音乐文件原始音调相比的升高/降低值,取值范围为
[-12,12],默认值为 0。每相邻两个值的音高距离相差半音,正值表示升调,负值表示降调。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note - 如果在起播前调用此接口,设置的参数值将被缓存,在起播后生效。 - 仅支持音乐文件混音,不支持 PCM 数据。inherited -
setEventHandler(
IMediaPlayerEventHandler handler) → Future< int?> -
@detail api
@brief 设置回调句柄。
@param handler 参看 IMediaPlayerEventHandler{@link #IMediaPlayerEventHandler}。
@return
- 0: 成功。
- < 0: 失败。
inherited
-
setLoudness(
float loudness) → Future< int?> -
@detail api
@brief 如果你需要使用 enableVocalInstrumentBalance{@link #RTCEngine#enableVocalInstrumentBalance} 对音频文件/PCM 音频数据设置音量均衡,你必须通过此接口传入其原始响度。
@param loudness 原始响度,单位:lufs,取值范围为
[-70.0, 0.0]。
当设置的值小于 -70.0lufs 时,则默认调整为 -70.0lufs,大于 0.0lufs 时,则不对该响度做音量均衡处理。默认值为 1.0lufs,即不做处理。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note - 如果在起播前调用此接口,设置的参数值将被缓存,在起播后生效。 - 此方法对音频文件和音频裸数据播放都可用。inherited -
setPlaybackSpeed(
int speed) → Future< int?> -
@detail api
@brief 设置播放速度
@param speed 播放速度与原始文件速度的比例,单位:%,取值范围为
[50,200],默认值为 100。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note - 如果在起播前调用此接口,设置的参数值将被缓存,在起播后生效。 - 此方法对音频文件可用,不支持 PCM 数据。inherited -
setPosition(
int position) → Future< int?> -
@detail api
@brief 设置音乐文件的起始播放位置。
@param position 音乐文件起始播放位置,单位为毫秒。
你可以通过 getTotalDuration{@link #IMediaPlayer#getTotalDuration} 获取音乐文件总时长,position 的值应小于音乐文件总时长。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note - 此接口仅支持音频文件,不支持 PCM 数据。 - 在播放在线文件时,调用此接口可能造成播放延迟的现象。 - 调用本接口后,会收到 onMediaPlayerEvent{@link #IMediaPlayerEventHandler#onMediaPlayerEvent} 回调。inherited -
setProgressInterval(
int interval) → Future< int?> -
@detail api
@brief 设置音频文件混音时,收到 onMediaPlayerPlayingProgress{@link #IMediaPlayerEventHandler#onMediaPlayerPlayingProgress} 的间隔。
@param interval 时间间隔,单位毫秒。
- interval > 0 时,触发回调。实际间隔为 10 的倍数。如果输入数值不能被 10 整除,将自动向上取整。例如传入52,实际间隔为 60 ms。 - interval <= 0 时,不会触发回调。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note - 如果在起播前调用此接口,设置的参数值将被缓存,在起播后生效。 - 此方法仅支持音频文件,不支持 PCM 数据。inherited -
setVolume(
int volume, AudioMixingType type) → Future< int?> -
@detail api
@brief 调节指定混音的音量大小,包括音乐文件混音和 PCM 混音。
@param volume 播放音量相对原音量的比值。单位为 %。范围为
[0, 400],建议范围是[0, 100]。带溢出保护。 @param type 详见 AudioMixingType{@link #AudioMixingType}。 @return - 0: 调用成功。 - < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明 @note 如果在起播前调用此接口,设置的参数值将被缓存,在起播后生效。inherited -
start(
) → Future< int?> -
@detail api
@brief 播放音乐。你仅需要在调用 open{@link #IMediaPlayer#open},且未开启自动播放时,调用此方法。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明
@note
inherited
-
stop(
) → Future< int?> -
@detail api
@brief 调用 open{@link #IMediaPlayer#open}, start{@link #IMediaPlayer#start}, 或 openWithCustomSource{@link #IMediaPlayer#openWithCustomSource} 开始播放后,可以调用本方法停止。
@return
- 0: 调用成功。
- < 0 : 调用失败。查看 ReturnStatus{@link #ReturnStatus} 获得更多错误说明
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
transformToPlatformConstructorArgs(
List args, List< int> indices, Map<String, dynamic> typeMap, Map<String, dynamic> enumMap, Map<String, dynamic> classMap, String platformVar) → List -
实例化参数处理
将 pack 过后的 enum / class 转成 android / ios 平台侧的 enum / class
inherited
-
updateInstance(
dynamic instance) → void -
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited