127 lines
4.5 KiB
Swift
127 lines
4.5 KiB
Swift
//
|
||
// Notification.swift
|
||
// MusicPlayer
|
||
//
|
||
// Created by Mr.Zhou on 2024/4/1.
|
||
//
|
||
|
||
import Foundation
|
||
///通知关键词协议
|
||
protocol NotificationKey {
|
||
associatedtype Keys: RawRepresentable
|
||
}
|
||
///将RawValue转化为字符串
|
||
extension NotificationKey where Keys.RawValue == String {
|
||
///发通知
|
||
static func post(notificationName key:Keys, object:Any? = nil) {
|
||
let rawValue = key.rawValue
|
||
NotificationCenter.default.post(name: NSNotification.Name(rawValue), object: object)
|
||
}
|
||
///监听通知
|
||
static func add(observer: AnyObject, selector: Selector, notificationName key: Keys, object:Any? = nil) {
|
||
let rawValue = key.rawValue
|
||
NotificationCenter.default.addObserver(observer, selector: selector, name: NSNotification.Name(rawValue), object: object)
|
||
}
|
||
///移除通知
|
||
static func remove(observer: AnyObject, notificationName key: Keys, object:Any? = nil) {
|
||
let rawValue = key.rawValue
|
||
NotificationCenter.default.removeObserver(observer, name: NSNotification.Name(rawValue), object: object)
|
||
}
|
||
}
|
||
//MARK: - 扩写通知
|
||
extension NotificationCenter{
|
||
struct notificationKey:NotificationKey {
|
||
///关键词
|
||
enum Keys:String {
|
||
///通知用户更新
|
||
case update_reminder
|
||
///切换taBarItem
|
||
case switch_tabBarItem
|
||
//MARK: - A面通知内容
|
||
///A面倒计时过程(携带时间值)
|
||
case sideA_time_times
|
||
///A面音量值改变
|
||
case sideA_volume_change
|
||
///A面启动音乐播放器
|
||
case sideA_play_music
|
||
///A面终止音乐播放器与倒计时
|
||
case sideA_stop_music
|
||
///A面暂停音乐播放器
|
||
case sideA_pause_music
|
||
///A面继续音乐播放器
|
||
case sideA_resume_music
|
||
///A面开启麦克风监听
|
||
case sideA_open_monitor
|
||
///A面关闭麦克风监听
|
||
case sideA_stop_monitor
|
||
///A面新增音乐选择页
|
||
case sideA_new_choice
|
||
///A面音乐创建成功
|
||
case sideA_creat_music
|
||
///A面音乐实体为空
|
||
case sideA_null_music
|
||
///A面收起音乐展示框
|
||
case sideA_close_show
|
||
///A面显示音乐展示框
|
||
case sideA_display_show
|
||
///A面隐藏音乐展示框
|
||
case sideA_hidden_show
|
||
///A面音乐实体重命名
|
||
case sideA_rename_music
|
||
//MARK: - b面通知内容
|
||
///JS代码注入完成
|
||
case js_edit_completion
|
||
///预览数据已更新
|
||
case positive_browses_reload
|
||
///预览数据加载完毕
|
||
case positive_browses_completion
|
||
///播放器状态变化
|
||
case switch_player_status
|
||
///弹出底部音乐模块
|
||
case pup_bottom_show
|
||
///弹出音乐播放器
|
||
case pup_player_vc
|
||
///播放器页面更新
|
||
case positive_player_reload
|
||
///播放器预加载成功
|
||
case positive_asset_successfully
|
||
///用户手动调整了进度
|
||
case positive_player_seek
|
||
///用户切换播放器播放方式
|
||
case player_type_switch
|
||
///用户清空了歌单
|
||
case player_delete_list
|
||
///网络状态切换-网络不可用
|
||
case net_switch_notReachable
|
||
///网络状态切换-网络可用
|
||
case net_switch_reachable
|
||
///b面pushj时
|
||
case positive_nav_push
|
||
///b面Pop时
|
||
case positive_nav_pop
|
||
///b面网络请求报错
|
||
case netWork_error_deal
|
||
///b面媒体资源得到服务器响应
|
||
case asset_response
|
||
///b面媒体资源从服务器接收到数据
|
||
case asset_receiveData
|
||
///b面媒体资源缓存结果
|
||
case asset_isCached
|
||
///b面媒体资源是否报错
|
||
case asset_errorCode
|
||
///b面播放器403事件
|
||
case player_asset_403
|
||
///创建自定义歌单
|
||
case create_custom_playlist
|
||
///b面歌曲下载中
|
||
case download_progress_source
|
||
///b面歌曲下载结束
|
||
case dowload_end_source
|
||
///b面搜索页模块更新
|
||
case search_gride_reload
|
||
///曲库原生广告加载成功
|
||
case library_native_success
|
||
}
|
||
}
|
||
}
|