版权音乐
- Flutter
更新时间不可用
createMusicPlayer
创建音乐播放器。
Future<MusicPlayer> createMusicPlayer();如果你需要播放音乐内容中心的音乐资源,你需要先调用该方法来创建一个音乐播放器。
返回值
- 方法调用成功:返回 MusicPlayer 对象。
- 方法调用失败:返回空指针。
所属接口类
destroyMusicPlayer
销毁音乐播放器对象。
Future<void> destroyMusicPlayer(MusicPlayer musicPlayer);当你不再需要使用音乐播放器时,你可以调用该方法来销毁音乐播放器对象。销毁之后如果需要重新使用音乐播放器,需要调用 createMusicPlayer 重新创建一个音乐播放器对象。
调用时机
该方法在加入频道前后均可调用,但请确保在 RtcEngine 的 release 方法前调用。
参数
| 参数名 | 描述 |
|---|---|
musicPlayer | MusicPlayer 对象。 |
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类
get
获取音乐榜单的详细信息。
Future<MusicChartInfo> get(int index);参数
| 参数名 | 描述 |
|---|---|
index | MusicChartInfo 数组的索引。 |
返回值
MusicChartInfo,包含音乐榜单的详细信息。
所属接口类
getCaches
获取已缓存的音乐资源信息。
Future<List<MusicCacheInfo>> getCaches(int cacheInfoSize);调用该方法前,你需要预先分配一定大小的内存空间用来存储缓存音乐资源的信息。如果你需要设置可缓存的音乐资源数量,可通过 initialize 的 configuration 来设置。
当你不再需要使用已缓存的音乐资源时,你需要及时释放内存以防止内存泄漏。
参数
返回值
- 方法调用成功时,返回 MusicCacheInfo 对象的列表。
- 方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类
getCount
获取本次请求的音乐榜单数量。
Future<int> getCount();返回值
本次请求的音乐榜单数量。
所属接口类
getCount
获取本次请求的音乐数量。
int getCount();返回值
本次请求的音乐数量。
所属接口类
getInternalSongCode
创建音乐资源的副歌片段编号。
Future<int> getInternalSongCode(
{required int songCode, required String jsonOption});适用场景
当你需要播放某一音乐资源的副歌片段前,你需要调用此方法,通过 jsonOption 参数和该音乐资源的 songCode 来为该音乐资源的副歌片段创建一个编号,作为该资源的唯一标识。当你获取到该片段的编号后,在你调用相应方法打开、预加载、移除该资源时,将该内部歌曲编号传入 songCode 参数。
参数
| 参数名 | 描述 |
|---|---|
songCode | 音乐资源编号,用于标识音乐资源。你可以通过调用 getMusicCollectionByMusicChartId 或 searchMusic 方法来获取音乐资源,并通过由此触发的 onMusicCollectionResult 回调获取音乐资源的编号( |
jsonOption | 注: 声网会根据你在 扩展 JSON 字段,默认为
|
返回值
- 方法调用成功,返回创建的音乐资源内部编号。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
所属接口类
getLyric
获取音乐资源的歌词下载地址。
Future<String> getLyric({required int songCode, int lyricType = 0});成功调用该方法后,SDK 会触发 onLyricResult 回调报告歌词的下载地址。
参数
返回值
一个 requestId,为本次请求的唯一标识。
所属接口类
getMusic
获取当前页面列表中音乐资源的详细信息。
Music getMusic(int index);参数
| 参数名 | 描述 |
|---|---|
index | Music 数组的索引。 |
返回值
一个 Music 实例。
所属接口类
getMusicCharts
获取全部音乐榜单。
Future<String> getMusicCharts();当你调用该方法后,SDK 会触发 onMusicChartsResult 回调报告音乐榜单的详细信息。
返回值
一个 requestId,为本次请求的唯一标识。
所属接口类
getMusicCollectionByMusicChartId
通过音乐榜单的 ID 获取指定榜单的音乐资源列表。
Future<String> getMusicCollectionByMusicChartId(
{required int musicChartId,
required int page,
required int pageSize,
String? jsonOption});成功调用该方法后,SDK 会触发 onMusicCollectionResult 回调报告榜单中音乐资源列表的详细信息。
参数
| 参数名 | 描述 |
|---|---|
musicChartId | 音乐榜单的 ID,可以通过 onMusicChartsResult 回调获取。你也可以通过 RESTful API 来获取曲库所有歌曲列表或获取增量歌曲列表。 |
page | |
pageSize | |
jsonOption |
返回值
一个 requestId,为本次请求的唯一标识。
所属接口类
getMusicContentCenter
MusicContentCenter getMusicContentCenter()返回值
一个 MusicContentCenter 对象。
所属接口类
getPage
获取音乐资源列表当前页的页码。
int getPage();返回值
当前页的页码。
所属接口类
getPageSize
获取 SDK 实际返回的音乐资源数量。
int getPageSize();返回值
SDK 实际返回的音乐资源数量。
所属接口类
getSongSimpleInfo
获取某一音乐资源的详细信息。
Future<String> getSongSimpleInfo(int songCode);在调用该方法前,你需要先获取到对应的音乐资源的编号。你可以通过调用 getMusicCollectionByMusicChartId 或 searchMusic 方法来获取音乐资源,并通过由此触发的 onMusicCollectionResult 回调获取音乐资源的编号(songCode)。
当你调用该方法后,SDK 会触发 onSongSimpleInfoResult 回调报告音乐资源的详细信息。
参数
返回值
一个 requestId,为本次请求的唯一标识。
所属接口类
getTotal
获取列表内音乐资源的总数量。
int getTotal();返回值
列表内音乐资源的总数量。
所属接口类
initialize
初始化 MusicContentCenter。
Future<void> initialize(MusicContentCenterConfiguration configuration);在调用 MusicContentCenter 类下的其他方法前,你需要先调用该方法初始化 MusicContentCenter。
参数
| 参数名 | 描述 |
|---|---|
configuration |
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类
isPreloaded
检测音乐资源是否已被预加载。
Future<bool> isPreloaded(int songCode);该方法为同步调用。如需预加载新的音乐资源,可调用 preload。
参数
返回值
true:该音乐资源已被预加载。false:该音乐资源未被预加载。
所属接口类
openWithSongCode
通过音乐资源编号打开音乐资源。
Future<void> openWithSongCode({required int songCode, int startPos = 0});在调用此方法之前,请确保需要播放的音乐资源已加载完成。你可以调用 isPreloaded 方法来检测音乐资源是否已被预加载,或通过 onPreLoadEvent 回调得知。
调用该方法后会触发 onPlayerSourceStateChanged 回调。在收到报告播放状态为 playerStateOpenCompleted 后,你可以调用 play 方法播放媒体文件。
注: 如果你想要打开的音乐资源受数字版权保护,则需要调用此方法打开。对于不受数字版权保护的音乐资源,你可以选择通过调用此方法或 MediaPlayer 类下的 open 方法来打开。
参数
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类
preload
预加载音乐资源。
Future<String> preload(int songCode);你可以调用该方法预先加载需要播放的音乐资源。成功调用该方法后,SDK 会触发 onPreLoadEvent 回调报告预加载音乐资源的事件。
在调用该方法来预加载音乐资源之前,你需要调用 getMusicCollectionByMusicChartId 或 searchMusic 方法来获取你需要播放的音乐资源,并通过由此触发的 onMusicCollectionResult 回调获取音乐资源的编号(songCode)。
注: 如需销毁 RtcEngine 对象,请在收到 onPreLoadEvent 回调后,再调用 release 方法。
参数
返回值
一个 requestId,为本次请求的唯一标识。
所属接口类
registerEventHandler
注册音乐内容中心回调事件。
void registerEventHandler(MusicContentCenterEventHandler eventHandler);参数
| 参数名 | 描述 |
|---|---|
eventHandler | 待注册的回调事件,详见 MusicContentCenterEventHandler。 |
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类
release
释放音乐内容中心所占用的所有资源。
Future<void> release();该方法需要在 RtcEngine 的 release 方法前调用。
所属接口类
removeCache
删除已缓存的音乐资源。
Future<void> removeCache(int songCode);你可以调用该方法删除某一已缓存的音乐资源,如需删除多个音乐资源,你可以多次调用该方法。
参数
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
所属接口类
renewToken
更新 Token。
Future<void> renewToken(String token);当你用于鉴权的 Token 快要过期或已过期时,你可以调用该方法来传入新生成的 Token。
参数
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类
searchMusic
搜索音乐资源。
Future<String> searchMusic(
{required String keyWord,
required int page,
required int pageSize,
String? jsonOption});成功调用该方法后,SDK 会触发 onMusicCollectionResult 回调报告检索到的音乐资源列表。
参数
返回值
一个 requestId,为本次请求的唯一标识。
所属接口类
setPlayMode
设置音乐资源的播放模式。
Future<void> setPlayMode(MusicPlayMode mode);你可以调用该方法来设置启用原唱、伴奏或导唱。如不调用该方法进行设置,则默认播放伴奏;如果音乐资源没有伴奏,则播放原唱。
注: 你可以通过 onMusicCollectionResult 回调获取音乐资源的详细信息,并可通过其中的 result 参数得知需播放的版权音乐所支持的播放类型。
适用场景
在线 K 歌、秀场等娱乐场景下,如果你需要播放声网内容中心提供的版权音乐,你可以调用该方法来设置播放模式。
调用时机
该方法需要在 createMusicPlayer 之后调用。
参数
| 参数名 | 描述 |
|---|---|
mode | 播放模式,详见 MusicPlayMode。 |
返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类
unregisterEventHandler
取消注册音乐内容中心事件回调。
void unregisterEventHandler();返回值
方法成功调用时,无返回值;方法调用失败时,会抛出 AgoraRtcException 异常,你需要捕获异常并进行处理。详见错误码了解详情和解决建议。
所属接口类
onLyricResult
歌词下载地址回调。
final void Function(String requestId, int songCode, String lyricUrl,
MusicContentCenterStateReason reason)? onLyricResult;当你调用 getLyric 获取指定歌曲的歌词下载地址后,SDK 会触发该回调。
参数
| 参数名 | 描述 |
|---|---|
requestId | |
songCode | |
lyricUrl | |
reason | 音乐内容中心的请求状态码,详见 MusicContentCenterStateReason。 |
所属接口类
onMusicChartsResult
获取音乐榜单回调。
final void Function(String requestId, List<MusicChartInfo> result,
MusicContentCenterStateReason reason)? onMusicChartsResult;当你调用 getMusicCharts 方法获取全部音乐榜单之后,SDK 会触发该回调。
参数
| 参数名 | 描述 |
|---|---|
requestId | |
reason | 音乐内容中心的请求状态码,详见 MusicContentCenterStateReason。 |
result | 当前可播放的音乐榜单列表。详见 MusicChartInfo。 |
所属接口类
onMusicCollectionResult
获取音乐资源列表回调。
final void Function(String requestId, MusicCollection result,
MusicContentCenterStateReason reason)? onMusicCollectionResult;当你调用 getMusicCollectionByMusicChartId 方法来获取指定榜单的音乐资源列表或调用 searchMusic 来搜索音乐资源时,SDK 会触发此回调报告榜单中音乐资源列表的详细信息。
参数
| 参数名 | 描述 |
|---|---|
requestId | |
reason | 音乐内容中心的请求状态码,详见 MusicContentCenterStateReason。 |
result | 音乐资源列表的详细信息。详见 MusicCollection。 |
所属接口类
onPreLoadEvent
报告预加载音乐资源的事件。
final void Function(
String requestId,
int songCode,
int percent,
String lyricUrl,
PreloadState state,
MusicContentCenterStateReason reason)? onPreLoadEvent;当你调用 preload 方法预加载音乐资源后,SDK 会触发该回调。
参数
| 参数名 | 描述 |
|---|---|
requestId | |
songCode | |
percent | |
lyricUrl | |
state | 当前音乐资源的加载状态。详见 PreloadState。 |
reason | 音乐内容中心的请求状态码,详见 MusicContentCenterStateReason。 |
所属接口类
onSongSimpleInfoResult
音乐资源的详细信息回调。
final void Function(String requestId, int songCode, String simpleInfo,
MusicContentCenterStateReason reason)? onSongSimpleInfoResult;当你调用 getSongSimpleInfo 获取某一音乐资源的详细信息后,SDK 会触发该回调。
参数
| 参数名 | 描述 |
|---|---|
requestId | |
songCode | |
simpleInfo | |
reason | 音乐内容中心的请求状态码,详见 MusicContentCenterStateReason。 |