Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
陈高翔
/
DreamSleep-iOS
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit f0a5dfcc
由
cgx
编写于
2022-07-22 12:23:43 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
调整接口、修复unity没有声音bug(系统坑)
1 个父辈
9241fef3
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
98 行增加
和
39 行删除
DreamSleep/DreamSleep.xcodeproj/project.pbxproj
DreamSleep/DreamSleep/Basement/Category/AVAudioSession+SXAudioSession.h
DreamSleep/DreamSleep/Basement/Category/AVAudioSession+SXAudioSession.m
DreamSleep/DreamSleep/Class/AISleepModule/SleepCoach/Controller/AISleepCoachController.m
DreamSleep/DreamSleep/Class/AISleepModule/SleepCoach/Controller/RelaxTrainController.h
DreamSleep/DreamSleep/Class/AISleepModule/SleepCoach/Controller/RelaxTrainController.m
DreamSleep/DreamSleep/Class/AISleepModule/SleepCoach/View/RelaxBodyView.h
DreamSleep/DreamSleep/Class/AISleepModule/SleepCoach/View/RelaxBodyView.m
DreamSleep/DreamSleep/Class/AISleepModule/SleepReady/View/XLCircleProgress.m
DreamSleep/DreamSleep/Class/HomeModule/Course/Controller/CourseDetailController.m
DreamSleep/DreamSleep/Class/Start/Root/DSBaseViewController.m
DreamSleep/DreamSleep.xcodeproj/project.pbxproj
查看文件 @
f0a5dfc
...
...
@@ -85,6 +85,7 @@
D051032F282A4E9200560A0D /* fse.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = D051032D282A4E9200560A0D /* fse.mp3 */; };
D0534F092835D90400F8892E /* DSNaviBarViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0534F082835D90400F8892E /* DSNaviBarViewController.m */; };
D053BEE9280F9E310028CCFC /* CloseAlertView.m in Sources */ = {isa = PBXBuildFile; fileRef = D053BEE8280F9E310028CCFC /* CloseAlertView.m */; };
D05416F7288A57BD0035060B /* AVAudioSession+SXAudioSession.m in Sources */ = {isa = PBXBuildFile; fileRef = D05416F6288A57BD0035060B /* AVAudioSession+SXAudioSession.m */; };
D054CCB52830DE5600420DC4 /* NoisePlayerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D054CCB42830DE5600420DC4 /* NoisePlayerManager.m */; };
D054CCB82830E3AC00420DC4 /* NoisePlayItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D054CCB72830E3AC00420DC4 /* NoisePlayItem.m */; };
D055BEB928250D3400BC11A4 /* CourseCollectionCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D055BEB828250D3400BC11A4 /* CourseCollectionCell.m */; };
...
...
@@ -421,6 +422,8 @@
D0534F082835D90400F8892E /* DSNaviBarViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DSNaviBarViewController.m; sourceTree = "<group>"; };
D053BEE7280F9E310028CCFC /* CloseAlertView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CloseAlertView.h; sourceTree = "<group>"; };
D053BEE8280F9E310028CCFC /* CloseAlertView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CloseAlertView.m; sourceTree = "<group>"; };
D05416F5288A57BD0035060B /* AVAudioSession+SXAudioSession.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AVAudioSession+SXAudioSession.h"; sourceTree = "<group>"; };
D05416F6288A57BD0035060B /* AVAudioSession+SXAudioSession.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "AVAudioSession+SXAudioSession.m"; sourceTree = "<group>"; };
D054CCB32830DE5600420DC4 /* NoisePlayerManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NoisePlayerManager.h; sourceTree = "<group>"; };
D054CCB42830DE5600420DC4 /* NoisePlayerManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NoisePlayerManager.m; sourceTree = "<group>"; };
D054CCB62830E3AC00420DC4 /* NoisePlayItem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NoisePlayItem.h; sourceTree = "<group>"; };
...
...
@@ -1105,6 +1108,8 @@
D09BF336280E605900E5F06C /* NSObject+Extras.m */,
D0A245F4283DB12100FB49AA /* WKWebView+Extras.h */,
D0A245F5283DB12100FB49AA /* WKWebView+Extras.m */,
D05416F5288A57BD0035060B /* AVAudioSession+SXAudioSession.h */,
D05416F6288A57BD0035060B /* AVAudioSession+SXAudioSession.m */,
);
path = Category;
sourceTree = "<group>";
...
...
@@ -2415,6 +2420,7 @@
D0FAC41D281B817D00D4B859 /* GKPhotoBrowser.m in Sources */,
D024CE89287D59FF00FB4320 /* SRMusicView.m in Sources */,
D07A4B2A280EA6B600BA0EC0 /* UserInfoTableView.m in Sources */,
D05416F7288A57BD0035060B /* AVAudioSession+SXAudioSession.m in Sources */,
D0930F122801124E006B497A /* BaseNaviController.m in Sources */,
D0878F4F280C087E005F1B7F /* LoginController.m in Sources */,
D07A657D28158A1900C15AF6 /* DsWebController.m in Sources */,
...
...
@@ -2605,7 +2611,7 @@
CODE_SIGN_ENTITLEMENTS = DreamSleep/Basement/DSConfig/DreamSleepDebug.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION =
6
;
CURRENT_PROJECT_VERSION =
7
;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 4NDZ6UX8PW;
...
...
@@ -2687,7 +2693,7 @@
CODE_SIGN_ENTITLEMENTS = DreamSleep/DreamSleep.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION =
6
;
CURRENT_PROJECT_VERSION =
7
;
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 4NDZ6UX8PW;
ENABLE_BITCODE = NO;
...
...
@@ -2828,7 +2834,7 @@
CODE_SIGN_ENTITLEMENTS = DreamSleep/Basement/DSConfig/DreamSleepBeta.entitlements;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION =
6
;
CURRENT_PROJECT_VERSION =
7
;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEFINES_MODULE = YES;
DEVELOPMENT_TEAM = 4NDZ6UX8PW;
...
...
DreamSleep/DreamSleep/Basement/Category/AVAudioSession+SXAudioSession.h
0 → 100644
查看文件 @
f0a5dfc
//
// AVAudioSession+SXAudioSession.h
// DreamSleep
//
// Created by peter on 2022/7/22.
//
#import <AVFAudio/AVFAudio.h>
NS_ASSUME_NONNULL_BEGIN
@interface
AVAudioSession
(
SXAudioSession
)
@end
NS_ASSUME_NONNULL_END
DreamSleep/DreamSleep/Basement/Category/AVAudioSession+SXAudioSession.m
0 → 100644
查看文件 @
f0a5dfc
//
// AVAudioSession+SXAudioSession.m
// DreamSleep
//
// Created by peter on 2022/7/22.
//
#import "AVAudioSession+SXAudioSession.h"
@implementation
AVAudioSession
(
SXAudioSession
)
/*
解决以下报错,导致unity游戏没有声音
-[AVAudioSession setActive:withOptions:error:]:
Deactivating an audio session that has running I/O.
All I/O should be stopped or paused prior to deactivating the audio session.
*/
-
(
BOOL
)
setActive
:(
BOOL
)
active
withOptions
:(
AVAudioSessionSetActiveOptions
)
options
error
:(
NSError
*
_Nullable
__autoreleasing
*
)
outError
{
return
YES
;
}
@end
DreamSleep/DreamSleep/Class/AISleepModule/SleepCoach/Controller/AISleepCoachController.m
查看文件 @
f0a5dfc
...
...
@@ -14,7 +14,7 @@
#import "SleepReadyController.h"
#import "ReadyListController.h"
@interface
AISleepCoachController
()
<
WKNavigationDelegate
,
WKScriptMessageHandler
,
DsWebControllerDelegate
,
RelaxTrainControllerDelegate
>
@interface
AISleepCoachController
()
<
WKNavigationDelegate
,
WKScriptMessageHandler
,
DsWebControllerDelegate
>
@property
(
strong
,
nonatomic
)
WKWebView
*
aiWebView
;
@property
(
strong
,
nonatomic
)
NSMutableURLRequest
*
request
;
@property
(
strong
,
nonatomic
)
UIProgressView
*
progressView
;
...
...
@@ -75,7 +75,7 @@
[
self
.
aiWebView
loadRequest
:
self
.
request
];
}
#pragma mark - DsWebControllerDelegate &&
RelaxTrainControllerDelegate &&
SleepReadyControllerDelegate
#pragma mark - DsWebControllerDelegate && SleepReadyControllerDelegate
-
(
void
)
reloadAIPage
{
[
self
.
aiWebView
reload
];
}
...
...
@@ -213,7 +213,6 @@
case
5
:
// 练习腹式呼吸法
{
RelaxTrainController
*
relaxVC
=
[
RelaxTrainController
new
];
relaxVC
.
refreshDelegate
=
self
;
relaxVC
.
params
=
bodyDic
;
[
self
.
navigationController
pushViewController
:
relaxVC
animated
:
YES
];
}
...
...
DreamSleep/DreamSleep/Class/AISleepModule/SleepCoach/Controller/RelaxTrainController.h
查看文件 @
f0a5dfc
...
...
@@ -10,14 +10,8 @@
NS_ASSUME_NONNULL_BEGIN
@protocol
RelaxTrainControllerDelegate
<
NSObject
>
/// 刷新AI睡眠教练页面
-
(
void
)
reloadAIPage
;
@end
/// 放松训练、腹式呼吸法页面
@interface
RelaxTrainController
:
DSBaseViewController
@property
(
nonatomic
,
weak
)
id
<
RelaxTrainControllerDelegate
>
refreshDelegate
;
/// title和step参数
@property
(
nonatomic
,
strong
)
NSDictionary
*
params
;
/// 安睡准备完成后传递过来的数据
...
...
DreamSleep/DreamSleep/Class/AISleepModule/SleepCoach/Controller/RelaxTrainController.m
查看文件 @
f0a5dfc
...
...
@@ -90,12 +90,26 @@
#pragma mark - Actions
-
(
void
)
backAction
{
[
super
backAction
];
[
self
.
bodyView
stopAudio
];
if
(
self
.
refreshDelegate
&&
[
self
.
refreshDelegate
respondsToSelector
:
@selector
(
reloadAIPage
)])
{
[
self
.
refreshDelegate
reloadAIPage
];
// 安睡准备进来的、点击开始播放、没有完成播放点击返回
if
(
self
.
bodyView
.
isSleepReady
==
YES
&&
self
.
bodyView
.
isStartPlay
==
YES
&&
self
.
bodyView
.
isShowScoreAlert
==
NO
)
{
[
DSProgressHUD
showProgressHUDWithInfo
:
@""
];
[
RelaxTrainRequestModel
userCurTaskStateWithParams
:
self
.
params
isReady
:
NO
completion
:^
(
RelaxTrainRequestModel
*
_Nonnull
requestModel
)
{
[
DSProgressHUD
dissmissProgressHUD
];
if
(
requestModel
.
resCode
==
DSResCodeSuccess
)
{
// 停止播放
[
self
.
bodyView
stopAudio
];
// 刷新AI睡眠教练
[[
NSNotificationCenter
defaultCenter
]
postNotificationName
:
NeedUpdateAICoach
object
:
nil
];
[
super
backAction
];
}
}];
}
else
{
// 停止播放
[
self
.
bodyView
stopAudio
];
// 刷新AI睡眠教练
[[
NSNotificationCenter
defaultCenter
]
postNotificationName
:
NeedUpdateAICoach
object
:
nil
];
[
super
backAction
];
}
[
self
.
navigationController
popViewControllerAnimated
:
YES
];
}
#pragma mark - RelaxBodyViewDelegate
...
...
DreamSleep/DreamSleep/Class/AISleepModule/SleepCoach/View/RelaxBodyView.h
查看文件 @
f0a5dfc
...
...
@@ -7,6 +7,7 @@
#import <UIKit/UIKit.h>
#import "RelaxTrainModel.h"
#import "RelaxTrainRequestModel.h"
NS_ASSUME_NONNULL_BEGIN
...
...
@@ -29,6 +30,11 @@ NS_ASSUME_NONNULL_BEGIN
/// 是否是安睡准备跳转过来的标识
@property
(
nonatomic
,
assign
)
BOOL
isSleepReady
;
/// 用于标识是否开始播放
@property
(
nonatomic
,
assign
)
BOOL
isStartPlay
;
/// 用于标识是否完成播放
@property
(
nonatomic
,
assign
)
BOOL
isShowScoreAlert
;
/// 页面退出时停止音频播放
-
(
void
)
stopAudio
;
...
...
DreamSleep/DreamSleep/Class/AISleepModule/SleepCoach/View/RelaxBodyView.m
查看文件 @
f0a5dfc
...
...
@@ -9,7 +9,6 @@
#import "RelaxTrainModel.h"
#import <FSAudioController.h>
#import "RelaxTrainCell.h"
#import "RelaxTrainRequestModel.h"
#import "DSSlider.h"
@interface
RelaxBodyView
()
<
UIGestureRecognizerDelegate
,
UICollectionViewDelegate
,
UICollectionViewDataSource
>
...
...
@@ -28,7 +27,6 @@
@property
(
nonatomic
,
strong
)
NSArray
*
relaxList
;
@property
(
nonatomic
,
assign
)
NSInteger
curIndex
;
@property
(
nonatomic
,
assign
)
BOOL
isUpdateTask
;
@property
(
nonatomic
,
assign
)
BOOL
isShowScoreAlert
;
@end
@implementation
RelaxBodyView
{
...
...
@@ -335,15 +333,18 @@
case
kFsAudioStreamPlaying
:
[
UIApplication
sharedApplication
].
networkActivityIndicatorVisible
=
NO
;
DSLog
(
@"播放ing..."
);
weakSelf
.
isStartPlay
=
YES
;
// 更新腹式呼吸放松法任务状态
@synchronized
(
weakSelf
)
{
if
(
weakSelf
.
isUpdateTask
==
NO
)
{
[
RelaxTrainRequestModel
userCurTaskStateWithParams
:
weakSelf
.
updateParams
isReady
:
weakSelf
.
isSleepReady
completion
:^
(
RelaxTrainRequestModel
*
_Nonnull
requestModel
)
{
if
(
requestModel
.
resCode
==
DSResCodeSuccess
)
{
weakSelf
.
isUpdateTask
=
YES
;
}
}];
// AI睡眠教练每日计划进来的:更新腹式呼吸放松法任务状态
if
(
weakSelf
.
isSleepReady
==
NO
)
{
@synchronized
(
weakSelf
)
{
if
(
weakSelf
.
isUpdateTask
==
NO
)
{
[
RelaxTrainRequestModel
userCurTaskStateWithParams
:
weakSelf
.
updateParams
isReady
:
NO
completion
:^
(
RelaxTrainRequestModel
*
_Nonnull
requestModel
)
{
if
(
requestModel
.
resCode
==
DSResCodeSuccess
)
{
weakSelf
.
isUpdateTask
=
YES
;
}
}];
}
}
}
...
...
@@ -357,10 +358,15 @@
// 回调只弹1次从安睡准备进来任务完成弹框
if
(
weakSelf
.
isSleepReady
)
{
if
(
weakSelf
.
isShowScoreAlert
==
NO
)
{
weakSelf
.
isShowScoreAlert
=
YES
;
if
(
weakSelf
.
delegate
&&
[
weakSelf
.
delegate
respondsToSelector
:
@selector
(
showScoreAlertView
)])
{
[
weakSelf
.
delegate
showScoreAlertView
];
}
// 更新任务状态
[
RelaxTrainRequestModel
userCurTaskStateWithParams
:
weakSelf
.
updateParams
isReady
:
YES
completion
:^
(
RelaxTrainRequestModel
*
_Nonnull
requestModel
)
{
if
(
requestModel
.
resCode
==
DSResCodeSuccess
)
{
weakSelf
.
isShowScoreAlert
=
YES
;
if
(
weakSelf
.
delegate
&&
[
weakSelf
.
delegate
respondsToSelector
:
@selector
(
showScoreAlertView
)])
{
[
weakSelf
.
delegate
showScoreAlertView
];
}
}
}];
}
}
break
;
...
...
DreamSleep/DreamSleep/Class/AISleepModule/SleepReady/View/XLCircleProgress.m
查看文件 @
f0a5dfc
...
...
@@ -57,7 +57,8 @@
[
_dialplateIV
dk_setImagePicker
:
DKImagePickerWithNames
(
@"pic_zhunbei_biaopan"
,
@"dk_pic_zhunbei_biaopan"
,
@"pic_zhunbei_biaopan"
)];
[
self
addSubview
:
_dialplateIV
];
_percentLabel
=
[[
UILabel
alloc
]
initWithFrame
:
self
.
bounds
];
_percentLabel
=
[[
UILabel
alloc
]
initWithFrame
:
CGRectMake
(
0
,
0
,
160
,
60
)];
_percentLabel
.
center
=
_dialplateIV
.
center
;
_percentLabel
.
dk_textColorPicker
=
DKColorPickerWithColors
(
MainTextColor
,
DkTitleColor
,
DSWhite
);
_percentLabel
.
textAlignment
=
NSTextAlignmentCenter
;
_percentLabel
.
font
=
BoldFont
(
34
.
0
);
...
...
DreamSleep/DreamSleep/Class/HomeModule/Course/Controller/CourseDetailController.m
查看文件 @
f0a5dfc
...
...
@@ -86,12 +86,6 @@
[
self
.
audioListView
reloadData
];
}
#pragma mark - Actions
-
(
void
)
backAction
{
[
super
backAction
];
[
self
.
navigationController
popViewControllerAnimated
:
YES
];
}
-
(
void
)
unlockAction
{
// 开始第一节
if
([
LoginUtils
getUserLoginData
])
{
...
...
DreamSleep/DreamSleep/Class/Start/Root/DSBaseViewController.m
查看文件 @
f0a5dfc
...
...
@@ -19,7 +19,9 @@
}
-
(
void
)
backAction
{
if
(
self
.
navigationController
.
viewControllers
.
count
>
0
)
{
[
self
.
navigationController
popViewControllerAnimated
:
YES
];
}
}
-
(
void
)
setIsNeedUpdateStatusBarStyle
:
(
BOOL
)
isNeedUpdateStatusBarStyle
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论