BBASMBackgroundAudioPlugin.h 6.58 KB
//
//  BBASMBackgroundAudioPlugin.h
//  SWAN
//
//  Created by baidu on 2018/5/2.
//  Copyright © 2018 baidu. All rights reserved.
//

#import <BBASchemeDispatcher/BBASDPluginBase.h>
#import "WKWebView+MNP.h"
#import <BBASchemeDispatcher/BBASchemeDispatcher.h>

@interface BBASMBackgroundAudioPlugin : BBASDPluginBase

/**
 * 描  述: 小程序背景音频管理器, 创建音频播放内容
 * 示  例: baiduboxapp://swanAPI/backgroundAudio/open?params={"src":"http://ws.xxxq.com/M500001VfvsJ21xFqb.mp3?","slaveId":"4","title":"石家庄人民共和国","epname":"此时此刻","singer":"许巍","coverImgUrl":"http://y.xxxphoto_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000","cb":{"onCanplay":"_bkAudio_onCanplay","onPlay":"_bkAudio_onPlay","onPause":"_bkAudio_onPause","onStop":"_bkAudio_onStop","onEnded":"_bkAudio_onEnded","onTimeUpdate":"_bkAudio_onTimeUpdate","onPrev":"_bkAudio_onPrev","onNext":"_bkAudio_onNext","onError":"_bkAudio_onError","onWaiting":"_bkAudio_onWaiting"}}&callback=_bdbox_js_66&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_backgroundaudio_open
 * 备  注:
 * ********** description ************
 * @name:      backgroundAudio.open
 * @authority: swanAPI
 * @path:      /backgroundAudio/open
 * @args:      [{"name": "slaveId", "value": "string"}, {"name":"showFloatView","value":"boolean="},{"name":"floatPosition","value":"string="},{"name": "cb", "value": "Object"}, {"name": "src", "value": "string"}, {"name": "startTime", "value": "string="}, {"name": "title", "value": "string"}, {"name": "epname", "value": "string="}, {"name": "singer", "value": "string="}, {"name": "coverImgUrl", "value": "string="}, {"name": "webUrl", "value": "string="}, {"name": "protocol", "value": "string="}, {"name": "lrcURL", "value": "string="}]
 * @config:    {"swan": {"web": {"invoke": "swan.message.url", "handler": "bridge"}, "jsc": {"invoke": "swan.method.url", "method": "_naSwan.bridge.postMessage"}}}
 */
- (void)open:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 小程序背景音频播放器,获取参数
 * 示  例: baiduboxapp://swanAPI/backgroundAudio/getParamsSync?params={"slaveId":"4","param":"duration"}&callback=_bdbox_js_81&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_backgroundaudio_getparamssync
 * 备  注:
 * ********** description ************
 * @name:      backgroundAudio.getParamsSync
 * @authority: swanAPI
 * @path:      /backgroundAudio/getParamsSync
 * @args:      [{"name": "slaveId", "value": "string"}, {"name": "param", "value": "string"}]
 * @config:    {"swan": {"web": {"invoke": "swan.prompt"}, "jsc": {"invoke": "swan.method.json", "method": "_naSwan.bridge.backgroundAudio.getParamsSync"}}}
 */
- (void)getParamsSync:(BBASchemeDispatcher *)dispatcher;

/**
 * 描  述: 小程序 background audio 更新信息
 * 示  例: baiduboxapp://swanAPI/backgroundAudio/update?params={"slaveId":"4","buffered":"15"}&callback=_bdbox_js_67&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_backgroundaudio_update
 * 备  注:
 * ********** description ************
 * @name:      backgroundAudio.renew
 * @authority: swanAPI
 * @path:      /backgroundAudio/update
 * @args:      [{"name": "slaveId",  "value": "string"}, {"name":"showFloatView","value":"boolean="},{"name":"floatPosition","value":"string="}, {"name": "src",  "value": "string="},  {"name": "startTime",  "value": "string="},  {"name": "title",  "value": "string="},  {"name": "epname",  "value": "string="},  {"name": "singer",  "value": "string="},  {"name": "coverImgUrl",  "value": "string="},  {"name": "webUrl",  "value": "string="},  {"name": "protocol",  "value": "string="},  {"name": "lrcURL",  "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/backgroundAudio/play?params={"slaveId":"4"}&callback=_bdbox_js_78&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_backgroundaudio_play
 * 备  注:
 * ********** description ************
 * @name:      backgroundAudio.play
 * @authority: swanAPI
 * @path:      /backgroundAudio/play
 * @args:      [{"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;

/**
 * 描  述: 小程序背景音频播放器暂停
 * 示  例: baiduboxapp://swanAPI/backgroundAudio/pause?params={"slaveId":"4"}&callback=_bdbox_js_79&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_backgroundaudio_pause
 * 备  注:
 * ********** description ************
 * @name:      backgroundAudio.pause
 * @authority: swanAPI
 * @path:      /backgroundAudio/pause
 * @args:      [{"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;

/**
 * 描  述: 小程序背景音频播放器停止
 * 示  例: baiduboxapp://swanAPI/backgroundAudio/stop?params={"slaveId":"4"}&callback=_bdbox_js_80&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_backgroundaudio_stop
 * 备  注:
 * ********** description ************
 * @name:      backgroundAudio.stop
 * @authority: swanAPI
 * @path:      /backgroundAudio/stop
 * @args:      [{"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;

/**
 * 描  述: 小程序背景音频播放器调整播放进度
 * 示  例: baiduboxapp://swanAPI/backgroundAudio/seek?params={"slaveId":"4","audioId":"1","position":"350"}&callback=_bdbox_js_577&upgrade=0
 * 文  档: http://ft.baidu.com/#/scheme/swan_backgroundaudio_seek
 * 备  注:
 * ********** description ************
 * @name:      backgroundAudio.seek
 * @authority: swanAPI
 * @path:      /backgroundAudio/seek
 * @args:      [{"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;

#pragma mark - not API
+ (NSDictionary *)getParamsWithAppID:(NSString *)appID params:(NSDictionary *)params;

@end