使用 ScheduledAudioFileRegion 安排整个文件
Schedule an entire file with ScheduledAudioFileRegion
在 Objective-C 中,我们填写了 ScheduledAudioFileRegion 结构,如下所示:
ScheduledAudioFileRegion playRegion;
playRegion.mTimeStamp.mFlags = kAudioTimeStampSampleTimeValid;
playRegion.mTimeStamp.mSampleTime = 0;
playRegion.mCompletionProc = NULL;
playRegion.mCompletionProcUserData = NULL;
playRegion.mAudioFile = audioFileID;
playRegion.mLoopCount = 0;
playRegion.mStartFrame = 0;
playRegion.mFramesToPlay = -1;
将 mFramesToPlay
设置为 -1 以告诉它播放整个文件。
Swift 不允许我将 UInt32 设置为 -1。那么如何让它播放整个文件呢?
我知道这不是唯一一个将 UInt32 的负值用作 Obj-C 中的标志的地方,但这是我第一次 运行 进入它。
mFramesToPlay
是一个UInt32
,而Swift不会隐式转换
在有符号和无符号整数之间。你可以写
playRegion.mFramesToPlay = UInt32(bitPattern: -1)
或者只是
playRegion.mFramesToPlay = UInt32.max
在 Objective-C 中,我们填写了 ScheduledAudioFileRegion 结构,如下所示:
ScheduledAudioFileRegion playRegion;
playRegion.mTimeStamp.mFlags = kAudioTimeStampSampleTimeValid;
playRegion.mTimeStamp.mSampleTime = 0;
playRegion.mCompletionProc = NULL;
playRegion.mCompletionProcUserData = NULL;
playRegion.mAudioFile = audioFileID;
playRegion.mLoopCount = 0;
playRegion.mStartFrame = 0;
playRegion.mFramesToPlay = -1;
将 mFramesToPlay
设置为 -1 以告诉它播放整个文件。
Swift 不允许我将 UInt32 设置为 -1。那么如何让它播放整个文件呢?
我知道这不是唯一一个将 UInt32 的负值用作 Obj-C 中的标志的地方,但这是我第一次 运行 进入它。
mFramesToPlay
是一个UInt32
,而Swift不会隐式转换
在有符号和无符号整数之间。你可以写
playRegion.mFramesToPlay = UInt32(bitPattern: -1)
或者只是
playRegion.mFramesToPlay = UInt32.max