资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

多媒体

ARMediaController

媒体控制器类, 用于创建/管理所有媒体播放会话。

Public methods
ARMediaController create_media_session
创建一个音乐播放会话

create_media_session

API起始版本:190

ARMediaSession* create_media_session(const std::string &media_type,std::string &path, LUA_TABLE configs);

创建一个音乐播放会话

Parameters

  • string | media_type : 要创建的媒体类型,可用类型名包括"audio"、"video"、"image_sequence"
  • string | path : 要播放的音频文件的路径名 (相对路径)或网络URL,格式为mp3
  • ARLuaTable | configs : key-value的方式存储的配置信息。可用的配置项如下
key type meaning defult-value
repeat_count int 重复次数 默认值为1,0为无限循环
delay int 延迟开始时间(ms) 0
is_remote int 是否是远程音频资源 0
from_time int 起始播放位置(ms) 0
sample:

local config = {}
config["repeat_count"] = 0
config["delay"] = 500
config["is_remote"] = 1
config["from_time"] = 1000

local node_name = scene:get_node_by_name("node_name")
local media_controller = node_name:get_media_controller()
local audio_session = media_controller:create_media_session("audio","http://arplay-testing-ground.bj.bcebos.com/canon-D.mp3", config)

ARMediaSession

媒体播放会话类,用于管理一次媒体(音频、视频、图片帧序列)播放过程

Public methods
ARMediaSession set_session_state_handler
设置MediaSession的状态回调
ARMediaSession Key-Value Coding support
KVC支持

set_state_handler

API起始版本:190

void set_state_handler(ARLuaFunction handler)

设置MediaSession的状态回调,当状态发生变化时回调到此方法(目前仅Session结束时会回调: state = "finished, canceled, failed")

Parameters

  • ARLuaFunction | handler : 一个原生的Lua Function,带2个参数,session_id和对应的状态state
sample:

local config = {}
config["repeat_count"] = 0
config["delay"] = 500
config["is_remote"] = 1
config["from_time"] = 1000

function state_handler(session_id, state)
	io.wirte("state of session " + tostring(session_id) + " changed to" + state)
end

local node_name = scene:get_node_by_name("node_name")
local media_controller = node_name:get_media_controller()
local audio_session = media_controller:create_media_session("audio", "http://arplay-testing-ground.bj.bcebos.com/canon-D.mp3", config)

audio_session:set_state_handler(state_handler)

--------------------------------------------------------
audio_session:play()

audio_session:pause()

audio_session:stop()

Key-Value Coding support

API起始版本:190

get_property

void get_property_int(std::string &key) const;

void get_property_float(std::string &key) const;

void get_property_string(std::string &key) const;

key type defult-value meaning
session_id int 当前播放会话的id,用于唯一标识一次播放过程
host_name string 对应节点的名字
invalidated bool false 当前会话是否已失效
media_type string 媒体类型("audio"/"video"/"image_sequence")
duration int 0 媒体文件时长,仅media_type = "audio"/"video"时可用
play_status string "unstarted" 当前播放状态("unstarted"/"prepared"/"playing"/"paused"/"finished"),仅media_type = "audio"/"video"时可用
play_progress float 0.0 当前播放进度(0.00--1.00),仅media_type = "audio"/"video"时可用
buffer_status string "unstarted" 当前缓冲状态("unstarted"/"buffer_start"/"buffer_end"),仅media_type = "audio"/"video",且在播放在线媒体资源时可用
buffer_progress float 0.0 当前缓冲进度(0.00--1.00),仅media_type = "audio"/"video",且在播放在线媒体资源时可用

ARMusicPlayer

独立的音乐播放器工具类,音乐播放不受ARApplication的生命周期控制,不会随着Application暂停/恢复而暂停恢复,常用于长时音乐播放,如背景音乐播放的场景。

Public methods
ARMusicPlayer play_music
音乐播放控制

play_music

API起始版本:190

void play_music(std::string &path, LUA_TABLE configs)

Parameters

  • string | path : 要播放的音频文件的路径名 (相对路径)或网络URL,格式为mp3.
  • LUA_TABLE | configs key-value的方式存储的配置信息。可用的配置项如下
key type meaning defult-value
repeat_count int 重复次数 默认值为1,0为无限循环
delay int 延迟开始时间(ms) 0
is_remote int 是否为本地音频资源 0
from_time int 播放起始位置(ms) 0
sample:

local player = ae.ARMusicPlayer:get_instance()
local config = {}
config["repeat_count"] = -1
config["delay"] = 5000 
player:play_music("media/almost_lover.mp3", config)
---------------------------------------------------
--暂停播放
player:pause()
--恢复播放
player:resume()
--停止播放
player:stop()
上一篇
场景管理
下一篇
交互