开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

多媒体

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()
上一篇
场景管理
下一篇
交互