多媒体
所有文档

          AR开放平台

          多媒体

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