FAgoraMediaSource
需播放的媒体文件的相关信息及播放设置。
C++
USTRUCT(BlueprintType)
struct FAgoraMediaSource
{
GENERATED_BODY()
public:
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaSource")
FString url = "";
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaSource")
FString uri = "";
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaSource")
int64 startPos = 0;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaSource")
bool autoPlay = false;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaSource")
bool enableCache = false;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaSource")
bool enableMultiAudioTrack = false;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaSource")
EAgoraOptional isAgoraSource = EAgoraOptional::AGORA_NULL_VALUE;
UPROPERTY(VisibleAnywhere, BlueprintReadWrite, Category = "Agora|MediaSource")
EAgoraOptional isLiveSource = EAgoraOptional::AGORA_NULL_VALUE;
FAgoraMediaSource(){}
FAgoraMediaSource(const agora::media::base::MediaSource & AgoraData){
url = UTF8_TO_TCHAR(AgoraData.url);
uri = UTF8_TO_TCHAR(AgoraData.uri);
startPos = AgoraData.startPos;
autoPlay = AgoraData.autoPlay;
enableCache = AgoraData.enableCache;
enableMultiAudioTrack = AgoraData.enableMultiAudioTrack;
SET_UEBP_OPTIONAL_VAL_BOOL(this->isAgoraSource,AgoraData.isAgoraSource)
SET_UEBP_OPTIONAL_VAL_BOOL(this->isLiveSource, AgoraData.isLiveSource)
}
agora::media::base::MediaSource CreateAgoraData() const {
agora::media::base::MediaSource AgoraData;
SET_UABT_FSTRING_TO_CONST_CHAR___MEMALLOC(AgoraData.url, url)
SET_UABT_FSTRING_TO_CONST_CHAR___MEMALLOC(AgoraData.uri, uri)
AgoraData.startPos = startPos;
AgoraData.autoPlay = autoPlay;
AgoraData.enableCache = enableCache;
AgoraData.enableMultiAudioTrack = enableMultiAudioTrack;
SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.isAgoraSource,isAgoraSource)
SET_AGORA_OPTIONAL_VAL_BOOL(AgoraData.isLiveSource, isLiveSource)
return AgoraData;
}
void FreeAgoraData(agora::media::base::MediaSource& AgoraData) const{
SET_UABT_FSTRING_TO_CONST_CHAR___MEMFREE(AgoraData.url)
SET_UABT_FSTRING_TO_CONST_CHAR___MEMFREE(AgoraData.uri)
}
};
url
需要播放的媒体资源的 URL。
信息
如果你打开的为普通媒体资源,请向 url 传值;如果你打开媒体资源为自定义媒体资源,请向 provider 传值,同时传值会导致方法调用失败。
uri
媒体文件的 URI(Uniform Resource Identifier),可用于标识媒体文件。
startPos
设置起始播放位置 (毫秒),默认值为 0。
autoPlay
打开媒体文件后,是否开启自动播放:
true
:(默认)开启自动播放。false
:关闭自动播放。
信息
如果你设置关闭自动播放,打开媒体文件后,请调用 Play 方法来播放媒体文件。
enableCache
此次播放是否开启实时缓存功能:
true
:开启实时缓存。false
:(默认)关闭实时缓存。
信息
- SDK 目前仅支持缓存点播流,但不支持缓存通过 HLS 协议传输的点播流。
- 缓存前,请向 uri 传值,否则播放器会以媒体文件的 url 作为缓存索引。
- 开启实时缓存后,播放器会预先缓存当前正在播放的媒体文件的部分数据到本地,当你下次播放该文件时播放器会直接从缓存中加载数据,可节省网络流量。当前缓存的媒体文件的相关统计数据会在媒体文件开始播放后每秒更新一次,详见 FCacheStatistics。
enableMultiAudioTrack
此次播放是否允许选择不同音轨:
true
:允许选择不同音轨。false
:(默认)不允许选择不同音轨。
如果你在本地播放和发布音频至远端时,需要设置不同的音轨,你需要将该参数设为 true
,然后再调用 SelectMultiAudioTrack 方法来设置音轨。
isAgoraSource
打开的媒体资源是否为通过声网融合 CDN 分发的直播或点播流:
true
:打开的媒体资源是声网融合 CDN 分发的直播或点播流。false
:(默认)打开的媒体资源不是声网融合 CDN 分发的直播或点播流。
信息
如果你需要打开的媒体资源为声网融合 CDN 分发的直播流或点播流,请向 url 传入直播或点播流的 URL 并将 isAgoraSource 设置为 true
,否则无需设置 isAgoraSource。
isLiveSource
打开的媒体资源是否为直播流:
true
:直播流。false
:(默认)非直播流。
如果你打开的媒体资源为直播流,建议你将该参数设置为 true
,可加快打开直播流的速度。
信息
仅当打开的媒体资源为直播流时,将 isLiveSource 设置为 true
后才可加快媒体资源的打开速度。