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

Dev*_*per 7 iphone audio mixing ios

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

- (BOOL)insertTimeRange:(CMTimeRange)timeRange ofTrack:(AVAssetTrack *)track atTime:(CMTime)startTime error:(NSError **)error;
Run Code Online (Sandbox Code Playgroud)

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

小智 16

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

CMTime tm = CMTimeMake(53425, 10000); // @ 5.3425 sec
Run Code Online (Sandbox Code Playgroud)