[英]How to pass float value where datatype is CMTime?
我正在創建一個應用程序,我必須在其中混合歌曲。 我已經完成了這一點,但問題是當我使用以下 function 時。
- (BOOL)insertTimeRange:(CMTimeRange)timeRange ofTrack:(AVAssetTrack *)track atTime:(CMTime)startTime error:(NSError **)error;
我必須在atTime參數中傳遞CMTime類型值,但它不需要浮點值,我必須以某個浮點值添加另一首歌曲。 有可能嗎?
您可以使用CMTimeMake...()
函數之一。 您必須提供時間點和時間刻度值。 前者是64位integer; 您可以截斷或舍入float
以將其轉換為 integer,或使用必要的高時間刻度:
CMTime tm = CMTimeMake(53425, 10000); // @ 5.3425 sec
在 Swift 4.2 和 Xcode 10.1 中
CMTimeMake(value: 53425, timescale: 10000)// @ 5.3425 sec
Swift版
CMTime(seconds: 5.3425, preferredTimescale: CMTimeScale(1000))
將preferredTimescale
設置得更大以獲得更高的精度。
可用性
iOS 7.0+ macOS 10.9+ Mac Catalyst 13.0+ tvOS 9.0+ watchOS 6.0+ Xcode 7.1+
另請查看Apple 文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.