在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
关于ios - 使用ScheduledAudioFileRegion计划整个文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27992634/