簡體   English   中英

如何傳遞數據類型為 CMTime 的浮點值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM