如何在数据类型为CMTime的情况下传递浮点值?

时间:2012-12-27 12:55:59

标签: iphone ios audio mixing

我正在创建一个我必须混合歌曲的应用程序。我已经完成了这个,但问题是当我使用以下功能时。

- (BOOL)insertTimeRange:(CMTimeRange)timeRange ofTrack:(AVAssetTrack *)track atTime:(CMTime)startTime error:(NSError **)error;

我必须在 atTime 参数中传递 CMTime 类型值,但它不接受Float值,我必须在某个浮点值处添加另一首歌曲。有可能吗?

2 个答案:

答案 0 :(得分:16)

您可以使用其中一个CMTimeMake...() functions。您必须提供时间点和时间刻度值。前者是64位整数;您可以截断或舍入float以将其转换为整数,或使用必要的高时间尺度:

CMTime tm = CMTimeMake(53425, 10000); // @ 5.3425 sec

答案 1 :(得分:0)

在Swift 4.2和Xcode 10.1中

CMTimeMake(value: 53425, timescale: 10000)// @ 5.3425 sec