Add record waver

This commit is contained in:
kevinzhow
2015-04-01 20:12:46 +08:00
parent 046c2fa766
commit 4b59dfead1
4 changed files with 41 additions and 13 deletions
+9 -1
View File
@@ -230,6 +230,14 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
0A3E605A1ACC1035003DC853 /* Component */ = {
isa = PBXGroup;
children = (
0A3E60581ACC0318003DC853 /* YepWaverView.swift */,
);
name = Component;
sourceTree = "<group>";
};
0A5D83951AC5D3CD000045BF /* TabBar */ = {
isa = PBXGroup;
children = (
@@ -397,7 +405,7 @@
5099B9C51AB95111002F940B /* Rank */,
5099B9CA1AB9A7CF002F940B /* CameraPreview */,
503315A11AC126140008A209 /* MessageToolbar */,
0A3E60581ACC0318003DC853 /* YepWaverView.swift */,
0A3E605A1ACC1035003DC853 /* Component */,
);
name = Views;
sourceTree = "<group>";
@@ -13,6 +13,8 @@ import AVFoundation
class ConversationViewController: UIViewController {
var conversation: Conversation!
var waverView: YepWaverView!
lazy var messages: RLMResults = {
return messagesInConversation(self.conversation)
@@ -153,6 +155,22 @@ class ConversationViewController: UIViewController {
})
}
}
self.waverView = YepWaverView(frame: self.view.bounds)
self.waverView.waver.waverCallback = {
if (YepAudioService.sharedManager.audioRecorder.recording) {
println("Update waver")
YepAudioService.sharedManager.audioRecorder.updateMeters()
var normalizedValue = pow(10, YepAudioService.sharedManager.audioRecorder.averagePowerForChannel(0)/40)
self.waverView.waver.level = CGFloat(normalizedValue)
}
}
messageToolbar.imageSendAction = { messageToolbar in
@@ -166,18 +184,18 @@ class ConversationViewController: UIViewController {
}
}
messageToolbar.voiceSendAction = { messageToolbar in
messageToolbar.voiceSendBeginAction = { messageToolbar in
self.view.window?.addSubview(self.waverView)
YepAudioService.sharedManager.beginRecord()
}
messageToolbar.voiceSendCancelAction = { messageToolbar in
self.waverView.removeFromSuperview()
YepAudioService.sharedManager.endRecord()
}
messageToolbar.voiceSendUpAction = { messageToolbar in
messageToolbar.voiceSendEndAction = { messageToolbar in
self.waverView.removeFromSuperview()
YepAudioService.sharedManager.endRecord()
// s3PrivateUploadParams(failureHandler: nil) { s3UploadParams in
+5 -3
View File
@@ -22,16 +22,18 @@ class YepWaverView: UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setup()
}
private func setup() {
waver = Waver(frame: CGRectMake(0, CGRectGetHeight(self.bounds)/2.0 - 50.0, CGRectGetWidth(self.bounds), 100.0))
self.backgroundColor = UIColor(white: 1.0, alpha: 0.4)
waver = Waver(frame: CGRectMake(0, CGRectGetHeight(self.bounds)/2.0 - 150.0, CGRectGetWidth(self.bounds), 100.0))
self.backgroundColor = UIColor(white: 1.0, alpha: 0.9)
self.addSubview(waver)
}
}
@@ -51,9 +51,9 @@ class MessageToolbar: UIToolbar {
var imageSendAction: ((messageToolBar: MessageToolbar) -> ())?
var voiceSendAction: ((messageToolBar: MessageToolbar) -> ())?
var voiceSendBeginAction: ((messageToolBar: MessageToolbar) -> ())?
var voiceSendUpAction: ((messageToolBar: MessageToolbar) -> ())?
var voiceSendEndAction: ((messageToolBar: MessageToolbar) -> ())?
var voiceSendCancelAction: ((messageToolBar: MessageToolbar) -> ())?
@@ -218,13 +218,13 @@ class MessageToolbar: UIToolbar {
}
func trySendVoiceMessageBegin() {
if let textSendAction = voiceSendAction {
if let textSendAction = voiceSendBeginAction {
textSendAction(messageToolBar: self)
}
}
func trySendVoiceMessageEnd() {
if let textSendAction = voiceSendUpAction {
if let textSendAction = voiceSendEndAction {
textSendAction(messageToolBar: self)
}
}