版权音乐
createMusicPlayer
创建音乐播放器。
public abstract IAgoraMusicPlayer createMusicPlayer();
v4.1.0
如果你需要播放音乐内容中心的音乐资源,你需要先调用该方法来创建一个音乐播放器。
返回值
-
方法调用成功:返回
IAgoraMusicPlayer
对象。 -
方法调用失败:返回空指针。
destroy
销毁 IAgoraMusicContentCenter
实例。
public static synchronized void destroy() {
if (mInstance == null)
return;
mInstance.release();
mInstance = null;
}
v4.1.0
该方法需要在 RtcEngine
的 destroy
方法前调用。
getCaches
获取已缓存的音乐资源信息。
public abstract MusicCacheInfo[] getCaches();
v4.2.0
调用该方法前,你需要预先分配一定大小的内存空间用来存储缓存音乐资源的信息。
当你不再需要使用已缓存的音乐资源时,你需要及时释放内存以防止内存泄漏。
返回值
-
方法调用成功时,返回包含
MusicCacheInfo
对象的数组。 -
方法调用失败时,返回 NULL。
getInternalSongCode
创建音乐资源的副歌片段编号。
public abstract long getInternalSongCode(long songCode, String jsonOption);
v4.2.2
参数
参数名 | 描述 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
songCode | 音乐资源编号,用于标识音乐资源。你可以通过调用 | |||||||||
jsonOption | 扩展 JSON 字段,默认为 NULL。目前支持传入下列值:
|
返回值
-
方法调用成功,返回创建的音乐资源内部编号。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
getLyric
获取音乐资源的歌词下载地址。
public abstract String getLyric(long songCode, int lyricType);
v4.1.0
成功调用该方法后,SDK 会触发 onLyricResult
回调报告歌词的下载地址。
参数
参数名 | 描述 |
---|---|
songCode | 音乐资源的编号,用于标识音乐资源。 |
LyricType | 歌词类型:
|
返回值
一个 requestId
,为本次请求的唯一标识。
getMusicCharts
获取全部音乐榜单。
public abstract String getMusicCharts();
v4.1.0
当你调用该方法后,SDK 会触发 onMusicChartsResult
回调报告音乐榜单的详细信息。
返回值
一个 requestId
,为本次请求的唯一标识。
getMusicCollectionByMusicChartId [1/2]
通过音乐榜单的 ID 获取指定榜单的音乐资源列表。
public String getMusicCollectionByMusicChartId(int musicChartId, int page, int pageSize) {
return getMusicCollectionByMusicChartId(musicChartId, page, pageSize, null);
}
v4.1.0
成功调用该方法后,SDK 会触发 onMusicCollectionResult
回调报告榜单中音乐资源列表的详细信息。
参数
参数名 | 描述 |
---|---|
musicChartId | 音乐榜单的 ID,可以通过 |
page | 当前页面编号,默认从 1 开始。 |
pageSize | 当前音乐资源列表的总页面数量,最大值为 50。 |
getMusicCollectionByMusicChartId [2/2]
通过音乐榜单的 ID 获取指定榜单的音乐资源列表。
public abstract String getMusicCollectionByMusicChartId(
int musicChartId, int page, int pageSize, String jsonOption);
v4.1.0
成功调用该方法后,SDK 会触发 onMusicCollectionResult
回调报告榜单中音乐资源列表的详细信息。
参数
参数名 | 描述 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
musicChartId | 音乐榜单的 ID,可以通过 | |||||||||
page | 当前页面编号,默认从 1 开始。 | |||||||||
pageSize | 当前音乐资源列表的总页面数量,最大值为 50。 | |||||||||
jsonOption | 扩展 JSON 字段,默认为 NULL。你可以通过该字段来筛选出你需要的音乐资源,目前支持筛选可打分的音乐资源及音乐资源的副歌片段:
|
返回值
一个 requestId
,为本次请求的唯一标识。
getPlaySrc [2/2]
获取当前播放的音乐资源的编号或 URL。
@Override String getPlaySrc();
v4.2.0
该方法需要在打开音乐资源之后调用:
返回值
-
方法调用成功,返回音乐资源的编号或 URL。
-
方法调用失败,返回 NULL。
getSongSimpleInfo
获取某一音乐资源的详细信息。
public abstract String getSongSimpleInfo(long songCode);
v4.2.2
在调用该方法前,你需要先获取到对应的音乐资源的编号。你可以通过调用 getMusicCollectionByMusicChartId [1/2]
或 searchMusic [1/2]
方法来获取音乐资源,并通过由此触发的 onMusicCollectionResult
回调获取音乐资源的编号(songCode
)。
当你调用该方法后,SDK 会触发 onSongSimpleInfoResult
回调报告音乐资源的详细信息。
参数
参数名 | 描述 |
---|---|
songCode | 音乐资源的编号,用于标识音乐资源。 |
返回值
一个 requestId
,为本次请求的唯一标识。
initialize
public abstract int initialize(MusicContentCenterConfiguration configuration);
v4.1.0
在调用 IAgoraMusicContentCenter
类下的其他方法前,你需要先调用该方法初始化 IAgoraMusicContentCenter
。
参数
参数名 | 描述 |
---|---|
configuration |
|
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
isPreloaded
检测音乐资源是否已被预加载。
public abstract int isPreloaded(long songCode);
v4.1.0
该方法为同步调用。如需预加载新的音乐资源,可调用 preload [1/2]
。
参数
参数名 | 描述 |
---|---|
songCode | 音乐资源的编号,用于标识一个音乐资源。 |
返回值
-
0: 方法调用成功,该音乐资源已被预加载。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
preload [1/2]
预加载音乐资源。
public abstract int preload(long songCode, String jsonOption);
该方法已废弃,请改用 preload [2/2]
。
你可以调用该方法预先加载需要播放的音乐资源。成功调用该方法后,SDK 会触发 onPreLoadEvent
回调报告预加载音乐资源的事件。
在调用该方法来预加载音乐资源之前,你需要调用 getMusicCollectionByMusicChartId [1/2]
或 searchMusic [1/2]
方法来获取你需要播放的音乐资源,并通过由此触发的 onMusicCollectionResult
回调获取音乐资源的编号(songCode
)。
注意: 如需销毁 RtcEngine
对象,请在收到 onPreloadEvent
回调后,再调用 destroy
方法。
参数
参数名 | 描述 |
---|---|
songCode | 音乐资源的编号,用于标识音乐资源。 |
jsonOption | 扩展 JSON 字段。
sceneType 的值。示例: {"sceneType":1} |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
preload [2/2]
预加载音乐资源。
public abstract String preload(long songCode);
v4.2.2
你可以调用该方法预先加载需要播放的音乐资源。成功调用该方法后,SDK 会触发 onPreLoadEvent
回调报告预加载音乐资源的事件。
在调用该方法来预加载音乐资源之前,你需要调用 getMusicCollectionByMusicChartId [1/2]
或 searchMusic [1/2]
方法来获取你需要播放的音乐资源,并通过由此触发的 onMusicCollectionResult
回调获取音乐资源的编号(songCode
)。
注意: 如需销毁 RtcEngine
对象,请在收到 onPreloadEvent
回调后,再调用 destroy
方法。
参数
参数名 | 描述 |
---|---|
songCode | 音乐资源的编号,用于标识音乐资源。 |
返回值
一个 requestId
,为本次请求的唯一标识。
registerEventHandler
注册音乐内容中心回调事件。
public abstract int registerEventHandler(IMusicContentCenterEventHandler eventHandler);
v4.1.0
参数
参数名 | 描述 |
---|---|
eventHandler | 待注册的回调事件,详见 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
release
释放音乐内容中心所占用的所有资源。
protected abstract void release();
v4.1.0
该方法需要在 RtcEngine
的 destroy
方法前调用。
removeCache
renewToken
searchMusic [1/2]
搜索音乐资源。
public String searchMusic(String keyword, int page, int pageSize) {
return searchMusic(keyword, page, pageSize, null);
}
v4.1.0
成功调用该方法后,SDK 会触发 onMusicCollectionResult
回调报告检索到的音乐资源列表。
参数
参数名 | 描述 |
---|---|
keyword | 搜索关键词,支持歌曲名、歌手搜索。 |
page | 想要获取的音乐资源列表的目标页编号。 |
pageSize | 每页所展示的音乐资源的最大数量,最大值为 50。 |
searchMusic [2/2]
搜索音乐资源。
public abstract String searchMusic(String keyword, int page, int pageSize, String jsonOption);
v4.1.0
成功调用该方法后,SDK 会触发 onMusicCollectionResult
回调报告检索到的音乐资源列表。
参数
参数名 | 描述 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
keyword | 搜索关键词,支持歌曲名、歌手搜索。 | |||||||||
page | 想要获取的音乐资源列表的目标页编号。 | |||||||||
pageSize | 每页所展示的音乐资源的最大数量,最大值为 50。 | |||||||||
jsonOption | 扩展 JSON 字段,默认为 NULL。你可以通过该字段来筛选出你需要的音乐资源,目前支持筛选可打分的音乐资源及音乐资源的副歌片段:
|
返回值
一个 requestId
,为本次请求的唯一标识。
unregisterEventHandler
open
通过音乐资源编号打开音乐资源。
int open(long songCode, long startPos);
v4.1.0
注: 如果你想要打开的音乐资源受数字版权保护,则需要调用此方法打开。对于不受数字版权保护的音乐资源,你可以选择通过调用此方法或 IMediaPlayer
类下的 open [1/2]
方法来打开。
在调用此方法之前,请确保需要播放的音乐资源已加载完成。你可以调用 isPreloaded
方法来检测音乐资源是否已被预加载,或通过 onPreLoadEvent
回调得知。
如需播放媒体文件,请在收到 onPlayerStateChanged
回调报告播放状态为 PLAYER_STATE_OPEN_COMPLETED
后再调用 play
方法播放媒体文件。
参数
参数名 | 描述 |
---|---|
songCode | 音乐资源的编号,用于标识音乐资源。 |
startPos | 设置起始播放位置(毫秒),默认值为 0。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
open2
通过 URL 打开音乐资源。
@Override int open(String url, long startPos);
v4.2.0
注: 如果你想要打开的音乐资源受数字版权保护,则需要调用此方法打开。对于不受数字版权保护的音乐资源,你可以选择通过调用此方法或 IMediaPlayer
类下的 open [1/2]
方法来打开。
如需播放媒体文件,请在收到 onPlayerStateChanged
回调报告播放状态为 PLAYER_STATE_OPEN_COMPLETED
后再调用 play
方法播放媒体文件。
参数
参数名 | 描述 |
---|---|
url | 音乐资源的路径,支持本地和在线文件。 |
startPos | 设置起始播放位置(毫秒),默认值为 0。 |
返回值
-
0: 方法调用成功。
-
< 0: 方法调用失败。详见
错误码
了解详情和解决建议。
onLyricResult
歌词下载地址回调。
void onLyricResult(String requestId, long songCode, String lyricUrl, int errorCode);
v4.1.0
当你调用 getLyric
获取指定歌曲的歌词下载地址后,SDK 会触发该回调。
参数
参数名 | 描述 |
---|---|
requestId | 请求 ID。本次请求的唯一标识。 |
songCode | 音乐资源的编号,用于标识音乐资源。 |
lyricUrl | 歌词的下载地址。 |
errorCode | 音乐内容中心的请求状态码:
|
onMusicChartsResult
获取音乐榜单回调。
void onMusicChartsResult(String requestId, MusicChartInfo[] list, int errorCode);
v4.1.0
当你调用 getMusicCharts
方法获取全部音乐榜单之后,SDK 会触发该回调。
参数
参数名 | 描述 |
---|---|
requestId | 请求 ID。本次请求的唯一标识。 |
errorCode | 音乐内容中心的请求状态码:
|
list | 当前可播放的音乐榜单列表。详见 |
onMusicCollectionResult
获取音乐资源列表回调。
void onMusicCollectionResult(
String requestId, int page, int pageSize, int total, Music[] list, int errorCode);
v4.1.0
当你调 getMusicCollectionByMusicChartId [1/2]
方法来获取指定榜单的音乐资源列表或调用 searchMusic [1/2]
来搜索音乐资源时,SDK 会触发此回调报告榜单中音乐资源列表的详细信息。
参数
参数名 | 描述 |
---|---|
requestId | 请求 ID。本次请求的唯一标识。 |
errorCode | 音乐内容中心的请求状态码:
|
page | 当前页面编号,默认从 1 开始。 |
pageSize | 每页所展示的音乐资源的最大数量,最大值为 50。 |
total | 列表内音乐资源的总数量。 |
list | 音乐资源列表的详细信息。详见 |
onPreLoadEvent
报告预加载音乐资源的事件。
onPreLoadEvent(String requestId, long songCode, int percent, String lyricUrl, int status, int errorCode);
v4.1.0
当你调用 preload [1/2]
方法预加载音乐资源后,SDK 会触发该回调。
参数
参数名 | 描述 |
---|---|
requestId | 请求 ID。本次请求的唯一标识。 |
songCode | 音乐资源的编号,用于标识一个音乐资源。 |
percent | 音乐资源当前的加载进度,取值范围为 [0,100]。 |
lyricUrl | 歌词下载地址。 |
status | 当前音乐资源的加载状态:
|
errorCode | 音乐内容中心的请求状态码:
|
onSongSimpleInfoResult
音乐资源的详细信息回调。
void onSongSimpleInfoResult(String requestId, long songCode, String simpleInfo, int errorCode);
v4.2.2
当你调用 getSongSimpleInfo
获取某一音乐资源的详细信息后,SDK 会触发该回调。
参数
参数名 | 描述 |
---|---|
requestId | 请求 ID。本次请求的唯一标识。 |
songCode | 音乐资源的编号,用于标识音乐资源。 |
simpleInfo | 音乐资源的相关信息,包含下列内容:
|
errorCode | 音乐内容中心的请求状态码:
|