Bladeren bron

use Int for DcMsg.duration, fix late filing of media messages duration

cyberta 4 jaren geleden
bovenliggende
commit
db5619dd4e
2 gewijzigde bestanden met toevoegingen van 6 en 6 verwijderingen
  1. 2 2
      DcCore/DcCore/DC/Wrapper.swift
  2. 4 4
      deltachat-ios/Chat/AudioController.swift

+ 2 - 2
DcCore/DcCore/DC/Wrapper.swift

@@ -969,8 +969,8 @@ public class DcMsg {
         return CGFloat(dc_msg_get_width(messagePointer))
     }
     
-    public var duration: Double {
-        return Double(dc_msg_get_duration(messagePointer))
+    public var duration: Int {
+        return Int(dc_msg_get_duration(messagePointer))
     }
 
     public func setLateFilingMediaSize(width: CGFloat, height: CGFloat, duration: Int) {

+ 4 - 4
deltachat-ios/Chat/AudioController.swift

@@ -97,7 +97,7 @@ open class AudioController: NSObject, AVAudioPlayerDelegate, AudioMessageCellDel
             let duration = message.duration
             if duration > 0 {
                 DispatchQueue.main.async {
-                    successHandler(messageId, Double(duration / 1000))
+                    successHandler(messageId, Double(duration) / 1000)
                 }
             } else if let fileURL = message.fileURL {
                 let audioAsset = AVURLAsset.init(url: fileURL, options: nil)
@@ -107,10 +107,10 @@ open class AudioController: NSObject, AVAudioPlayerDelegate, AudioMessageCellDel
                     switch status {
                     case .loaded:
                         let duration = audioAsset.duration
-                        let durationInSeconds = Double(CMTimeGetSeconds(duration))
-                        message.setDuration(1000 * durationInSeconds)
+                        let durationInSeconds = CMTimeGetSeconds(duration)
+                        message.setLateFilingMediaSize(width: 0, height: 0, duration: Int(1000 * durationInSeconds))
                         DispatchQueue.main.async {
-                            successHandler(messageId, durationInSeconds)
+                            successHandler(messageId, Double(durationInSeconds))
                         }
                     case .failed:
                         logger.warning("loading audio message \(messageId) failed: \(String(describing: error?.localizedDescription))")