B面1.0.5优化,对于解锁时按钮状态变化的调整
This commit is contained in:
parent
63078adc81
commit
d3504cb6fc
@ -1563,7 +1563,7 @@
|
|||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 1.0.5.1;
|
CURRENT_PROJECT_VERSION = 1.0.6.1;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
DEVELOPMENT_TEAM = T93S37G27F;
|
DEVELOPMENT_TEAM = T93S37G27F;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@ -1582,7 +1582,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.5;
|
MARKETING_VERSION = 1.0.6;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = relax.offline.mp3.music;
|
PRODUCT_BUNDLE_IDENTIFIER = relax.offline.mp3.music;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
@ -1604,7 +1604,7 @@
|
|||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
CODE_SIGN_IDENTITY = "Apple Development";
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 1.0.5.1;
|
CURRENT_PROJECT_VERSION = 1.0.6.1;
|
||||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||||
DEVELOPMENT_TEAM = T93S37G27F;
|
DEVELOPMENT_TEAM = T93S37G27F;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
@ -1623,7 +1623,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 1.0.5;
|
MARKETING_VERSION = 1.0.6;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = relax.offline.mp3.music;
|
PRODUCT_BUNDLE_IDENTIFIER = relax.offline.mp3.music;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
|
|||||||
@ -63,16 +63,16 @@ class MP_NetWorkManager: NSObject {
|
|||||||
private let youTubeKeys:[String] = ["MUSIC_VIDEO_TYPE_ATV","MUSIC_VIDEO_TYPE_OMV","MUSIC_PAGE_TYPE_ALBUM","MUSIC_PAGE_TYPE_ARTIST","MUSIC_PAGE_TYPE_PLAYLIST","MUSIC_PAGE_TYPE_TRACK_LYRICS","MUSIC_PAGE_TYPE_TRACK_RELATED"]
|
private let youTubeKeys:[String] = ["MUSIC_VIDEO_TYPE_ATV","MUSIC_VIDEO_TYPE_OMV","MUSIC_PAGE_TYPE_ALBUM","MUSIC_PAGE_TYPE_ARTIST","MUSIC_PAGE_TYPE_PLAYLIST","MUSIC_PAGE_TYPE_TRACK_LYRICS","MUSIC_PAGE_TYPE_TRACK_RELATED"]
|
||||||
///禁止接入IP信息组
|
///禁止接入IP信息组
|
||||||
private let banIPs:[String] = [
|
private let banIPs:[String] = [
|
||||||
"CN",
|
// "CN",
|
||||||
"HK",
|
// "HK",
|
||||||
"TW",
|
// "TW",
|
||||||
"JP",
|
// "JP",
|
||||||
"KR",
|
// "KR",
|
||||||
"GB",
|
// "GB",
|
||||||
"CH",
|
// "CH",
|
||||||
"BE",
|
// "BE",
|
||||||
"MO",
|
// "MO",
|
||||||
"SG"
|
// "SG"
|
||||||
]
|
]
|
||||||
//网络状态
|
//网络状态
|
||||||
enum NetWorkStatus: String {
|
enum NetWorkStatus: String {
|
||||||
|
|||||||
@ -161,6 +161,8 @@ class MP_PlayerManager:NSObject{
|
|||||||
NotificationCenter.notificationKey.add(observer: self, selector: #selector(userSwitchCurrentVideoAction(_ :)), notificationName: .positive_player_reload)
|
NotificationCenter.notificationKey.add(observer: self, selector: #selector(userSwitchCurrentVideoAction(_ :)), notificationName: .positive_player_reload)
|
||||||
//监听网络状态恢复可用
|
//监听网络状态恢复可用
|
||||||
NotificationCenter.notificationKey.add(observer: self, selector: #selector(netWorkReachableAction(_ :)), notificationName: .net_switch_reachable)
|
NotificationCenter.notificationKey.add(observer: self, selector: #selector(netWorkReachableAction(_ :)), notificationName: .net_switch_reachable)
|
||||||
|
//监听蓝牙设备的状态
|
||||||
|
NotificationCenter.default.addObserver(self, selector: #selector(handleAudioSessionRouteChangeAction(_ :)), name: AVAudioSession.routeChangeNotification, object: nil)
|
||||||
//设置一个秒为刻度的时间值
|
//设置一个秒为刻度的时间值
|
||||||
let interval:CMTime = .init(seconds: 1, preferredTimescale: .init(1))
|
let interval:CMTime = .init(seconds: 1, preferredTimescale: .init(1))
|
||||||
//为播放器添加运行时主线程每秒触发事件
|
//为播放器添加运行时主线程每秒触发事件
|
||||||
@ -257,6 +259,13 @@ class MP_PlayerManager:NSObject{
|
|||||||
//暂停计时器
|
//暂停计时器
|
||||||
timer?.suspend()
|
timer?.suspend()
|
||||||
timerType = .Suspend
|
timerType = .Suspend
|
||||||
|
guard times != 0 else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let times = Int(self.times)
|
||||||
|
let msTimes = times*1000
|
||||||
|
MP_AnalyticsManager.shared.player_b_delay_actionAction(loadPlayer?.currentVideo?.song.videoId ?? "", videoname: loadPlayer?.currentVideo?.title ?? "", artistname: loadPlayer?.currentVideo?.song.shortBylineText ?? "", delay: "\(msTimes)ms")
|
||||||
|
MP_AnalyticsManager.shared.player_b_success_actionAction(loadPlayer?.currentVideo?.song.videoId ?? "", videoname: loadPlayer?.currentVideo?.title ?? "", artistname: loadPlayer?.currentVideo?.song.shortBylineText ?? "")
|
||||||
}
|
}
|
||||||
|
|
||||||
///网络状态恢复正常
|
///网络状态恢复正常
|
||||||
@ -271,6 +280,30 @@ class MP_PlayerManager:NSObject{
|
|||||||
playState = .Playing
|
playState = .Playing
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
///监听到音视频路由发生变化
|
||||||
|
@objc private func handleAudioSessionRouteChangeAction(_ notification: Notification) {
|
||||||
|
guard let info = notification.userInfo, let reasonValue = info[AVAudioSessionRouteChangeReasonKey] as? UInt, let reason = AVAudioSession.RouteChangeReason(rawValue:reasonValue) else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
switch reason {
|
||||||
|
case .newDeviceAvailable:// 新设备连接
|
||||||
|
let session = AVAudioSession.sharedInstance()
|
||||||
|
for output in session.currentRoute.outputs where output.portType == .headphones {
|
||||||
|
print("耳机已连接")
|
||||||
|
}
|
||||||
|
//继续运行
|
||||||
|
case .oldDeviceUnavailable:// 设备断开
|
||||||
|
if let previousRoute = info[AVAudioSessionRouteChangePreviousRouteKey] as? AVAudioSessionRouteDescription {
|
||||||
|
for output in previousRoute.outputs where output.portType == .headphones {
|
||||||
|
print("耳机已断开")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//暂停当前播放
|
||||||
|
pause()
|
||||||
|
default:
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//实现KVO监听
|
//实现KVO监听
|
||||||
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
|
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
|
||||||
@ -305,16 +338,12 @@ class MP_PlayerManager:NSObject{
|
|||||||
cacheLoadTimes()
|
cacheLoadTimes()
|
||||||
case "playbackLikelyToKeepUp"://是否存在足够的数据开始播放
|
case "playbackLikelyToKeepUp"://是否存在足够的数据开始播放
|
||||||
if let playbackLikelyToKeepUp = change?[.newKey] as? Bool, playbackLikelyToKeepUp == true {
|
if let playbackLikelyToKeepUp = change?[.newKey] as? Bool, playbackLikelyToKeepUp == true {
|
||||||
if playState != .Playing {
|
if playState != .Playing && playState != .Pause {
|
||||||
//还未播放当前音乐,启动播放
|
//还未播放当前音乐,启动播放
|
||||||
player.play()
|
player.play()
|
||||||
playState = .Playing
|
playState = .Playing
|
||||||
//暂停计时器,并获取延时值
|
//暂停计时器,并获取延时值
|
||||||
suspendTimer()
|
suspendTimer()
|
||||||
let times = Int(self.times)
|
|
||||||
let msTimes = times*1000
|
|
||||||
MP_AnalyticsManager.shared.player_b_delay_actionAction(loadPlayer?.currentVideo?.song.videoId ?? "", videoname: loadPlayer?.currentVideo?.title ?? "", artistname: loadPlayer?.currentVideo?.song.shortBylineText ?? "", delay: "\(msTimes)ms")
|
|
||||||
MP_AnalyticsManager.shared.player_b_success_actionAction(loadPlayer?.currentVideo?.song.videoId ?? "", videoname: loadPlayer?.currentVideo?.title ?? "", artistname: loadPlayer?.currentVideo?.song.shortBylineText ?? "")
|
|
||||||
//执行开始播放闭包
|
//执行开始播放闭包
|
||||||
if startActionBlock != nil {
|
if startActionBlock != nil {
|
||||||
startActionBlock!()
|
startActionBlock!()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user