BBASMBackgroundAudioAdapterProtocol.h 2.99 KB
//
//  BBASMBackgroundAudioAdapterProtocol.h
//  BBAMNP
//
//  Created by baidu on 2019/2/28.
//  Copyright © 2019 Baidu. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "BBASMBackgroundAudioHandleDelegate.h"
#import "BBASMAudioStatusDefine.h"

NS_ASSUME_NONNULL_BEGIN

@protocol BBASMBackgroundAudioAdapterProtocol <NSObject>

/**
 * @brief 是否使用自定义后台音乐播放器。
 *         默认为NO,若使用,请务必实现以下方法,同时需处理 BBASMBackgroundAudioHandleDelegate 回调
 */
+ (BOOL)shouldUseCustomBackgroundAudioPlayer;

/**
 * @brief 调起音乐播放器
 *
 * @param info 音乐相关信息
 *               @example : {
 *                           "epname"      : [NSString],专辑名称        // 选填
 *                           "title"       : [NSString],音乐名称        // 选填
 *                           "singer"      : [NSString],歌手名字        // 选填
 *                           "src"         : [NSString],音乐链接        // 必填
 *                           "coverImgUrl" : [NSString],封面图片        // 选填
 *                           "startTime"   : [NSString],播放开始时间     // 选填,默认为0
 *                           "mnpAppID"    : [NSString],小程序ID        // 必填,用于自定义UI(如手百音乐播放器)跳回小程序使用
 *                          }
 * @param delegate BBASMBackgroundAudioHandleDelegate
 * @return 调起是否成功
 */
+ (BOOL)invokePlayerWithAudioInfo:(NSDictionary *)info
                      andDelegate:(id<BBASMBackgroundAudioHandleDelegate>)delegate;

/**
 * @brief 更新音乐相关信息
 * @param info 音乐相关信息
 *               @example : {
 *                           "epname"      : [NSString],专辑名称        // 选填
 *                           "title"       : [NSString],音乐名称        // 选填
 *                           "singer"      : [NSString],歌手名字        // 选填
 *                           "src"         : [NSString],音乐链接        // 必填
 *                           "coverImgUrl" : [NSString],封面图片        // 选填
 *                           "startTime"   : [NSString],播放开始时间     // 选填,默认为0
 *                          }
 */
+ (BOOL)updatePlayerSource:(NSDictionary *)info;

/**
 * @brief 音乐暂停
 */
+ (BOOL)pause;

/**
 * @brief 音乐播放
 */
+ (BOOL)play;

/**
 * @brief 音乐停止
 */
+ (void)stop;

/**
 * @brief 跳到指定时间播放
 * 
 * @param time 指定时间
 * @param callback seek完成回调
 *
 * @note 原"seekToTime:"方法已废弃,2.19.0版本新增seek完成后的callback回调,请使用下列方法
 */
+ (BOOL)seekToTime:(NSTimeInterval)time callback:(void(^)(BOOL finished))callback;

/**
 * @brief 当前播放状态
 */
+ (BBASMAudioPlayerStatus)currentStatus;

@optional
/**
 * @brief 更新小程序状态前后台状态
 */
+ (BOOL)updatePlayerMode:(BBASMAudioPlayerMode)mode;

@end

NS_ASSUME_NONNULL_END