     var audioPlayedDuration: NSTimeInterval = 0 {
         willSet {
 
+            guard newValue != audioPlayedDuration else {
+                return
+            }
+
             let sampleStep: CGFloat = (4 + 2)
             let fullWidth = voiceRecordSampleView.bounds.width
 


    func audioPlayerDidFinishPlaying(player: AVAudioPlayer, successfully flag: Bool) {

        state = .FinishRecord
        audioPlaying = false

        println("audioPlayerDidFinishPlaying: \(flag)")
    }


            let currentOffsetX = CGFloat(newValue) * (10 * sampleStep)

            // 0.5 用于回去
            let duration: NSTimeInterval = newValue > audioPlayedDuration ? 0.02 : 0.5

            if fullOffsetX > fullWidth {

                if currentOffsetX <= fullWidth * 0.5 {
                    UIView.animateWithDuration(duration, delay: 0.0, options: .CurveLinear, animations: { [weak self] in
                        self?.voiceIndicatorImageViewCenterXConstraint.constant = -fullWidth * 0.5 + 2 + currentOffsetX
                        self?.view.layoutIfNeeded()
                    }, completion: { _ in })
