BBASMAudioPlugin.h 7.33 KB
//
//  BBASMAudioPlugin.h
//  SWAN
//
//  Created by baidu on 2019/2/28.
//  Copyright © 2019 Baidu. All rights reserved.
//

#import <BBASchemeDispatcher/BBASchemeDispatcher.h>

NS_ASSUME_NONNULL_BEGIN

/// 组件module,用于错误日志
extern NSString *const BBASMAudioModule;

@interface BBASMAudioPlugin : BBASDPluginBase

/**
 * 描  述: 小程序创建innerAudioContext播放器
 * 示  例: baiduboxapp://swanAPI/audio/open?params={"audioId":"1","src":"http://xxxc.qq.com/M500001VfvsJ21xFqb.mp3 tfxtfdx4eds?","slaveId":"4","obeyMuteSwitch":"true","loop":"false","startTime":"0","volume":"undefined","cb":{"onCanplay":"_audio_onCanplay_audioId_1","onPlay":"_audio_onPlay_audioId_1","onPause":"_audio_onPause_audioId_1","onStop":"_audio_onStop_audioId_1","onEnded":"_audio_onEnded_audioId_1","onTimeUpdate":"_audio_onTimeUpdate_audioId_1","onError":"_audio_onError_audioId_1","onWaiting":"_audio_onWaiting_audioId_1","onSeeking":"_audio_onSeeking_audioId_1","onSeeked":"_audio_onSeeked_audioId_1"}}&callback=_bdbox_js_697&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_audio_open
 * 备  注:
 * ********** description ************
 * @name:      audio.open
 * @authority: swanAPI
 * @path:      /audio/open
 * @args:      [{"name":"src", "value":"string="}, {"name":"audioId", "value":"string"}, {"name":"slaveId", "value":"string"}, {"name":"cb", "value":"object"}, {"name":"startTime", "value":"string="}, {"name":"loop", "value":"string="}, {"name":"volume", "value":"string="}, {"name":"obeyMuteSwitch", "value":"string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)open:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 小程序 createInnerAudioContext,对应的音频播放
 * 示  例: baiduboxapp://swanAPI/audio/play?params={"slaveId":"4","audioId":"1"}&callback=_bdbox_js_573&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_audio_play
 * 备  注:
 * ********** description ************
 * @name:      audio.play
 * @authority: swanAPI
 * @path:      /audio/play
 * @args:      [{"name": "audioId", "value": "string"}, {"name": "slaveId", "value":  "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)play:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 小程序innerAudioContext播放器暂停
 * 示  例: baiduboxapp://swanAPI/audio/pause?params={"slaveId":"4","audioId":"1"}&callback=_bdbox_js_575&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_audio_pause
 * 备  注:
 * ********** description ************
 * @name:      audio.pause
 * @authority: swanAPI
 * @path:      /audio/pause
 * @args:      [{"name": "audioId", "value": "string"}, {"name": "slaveId", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)pause:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 小程序innerAudioContext播放器暂停
 * 示  例: baiduboxapp://swanAPI/audio/stop?params={"slaveId":"4","audioId":"1"}&callback=_bdbox_js_576&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_audio_stop
 * 备  注:
 * ********** description ************
 * @name:      audio.stop
 * @authority: swanAPI
 * @path:      /audio/stop
 * @args:      [{"name": "audioId", "value": "string"}, {"name": "slaveId", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)stop:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 小程序innerAudioContext播放器,调整当前播放时间
 * 示  例: baiduboxapp://swanAPI/audio/seek?params={"slaveId":"4","audioId":"1","position":"350"}&callback=_bdbox_js_577&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_audio_seek
 * 备  注:
 * ********** description ************
 * @name:      audio.seek
 * @authority: swanAPI
 * @path:      /audio/seek
 * @args:      [{"name": "audioId", "value": "string"}, {"name": "slaveId", "value": "string"}, {"name": "position", "value": "string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)seek:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 小程序关闭innerAudioContext播放器
 * 示  例: baiduboxapp://swanAPI/audio/close?params={"slaveId":"4","audioId":"1"}&callback=_bdbox_js_578&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_audio_close
 * 备  注:
 * ********** description ************
 * @name:      audio.close
 * @authority: swanAPI
 * @path:      /audio/close
 * @args:      [{"name": "audioId", "value": "string"}, {"name": "slaveId", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)close:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 小程序innerAudioContext播放器更新参数
 * 示  例: baiduboxapp://swanAPI/audio/update?params={"slaveId":"4","audioId":"3","loop":"true"}&callback=_bdbox_js_586&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_audio_update
 * 备  注:
 * ********** description ************
 * @name:      audio.renew
 * @authority: swanAPI
 * @path:      /audio/update
 * @args:      [{"name": "audioId",  "value": "string"},  {"name": "slaveId",  "value": "string"},  {"name": "startTime",  "value": "string="},  {"name": "loop",  "value": "string="},  {"name": "volume",  "value": "string="},  {"name": "obeyMuteSwitch",  "value": "string="}, {"name": "src",  "value": "string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)update:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 设置小程序内音频播放器的属性
 * 示  例: baiduboxapp://swanAPI/audio/setInnerAudioOption?params={}&callback=_bdbox_js_586
 * 文  档: http://ft.baidu.com/#/scheme/swan_audio_setinneraudiooption
 * 备  注:
 * ********** description ************
 * @name:      setInnerAudioOption
 * @authority: swanAPI
 * @path:      /audio/setInnerAudioOption
 * @args:      [{"name":  "mixWithOther", "value":  "boolean="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)setInnerAudioOption:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 获取当前支持的音频输入源
 * 示  例: baiduboxapp://swanAPI/getAvailableAudioSources?params={}&callback=_bdbox_js_586
 * 文  档: http://ft.baidu.com/#/scheme/swan_audio_getAvailableAudioSources
 * 备  注:
 * ********** description ************
 * @name:      getAvailableAudioSources
 * @authority: swanAPI
 * @path:      /audio/getAvailableAudioSources
 * @args:      []
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)getAvailableAudioSources:(BBASchemeDispatcher *)dispatcher;

@end

NS_ASSUME_NONNULL_END