快速概览:我正在开发一个 Mac Swift 桌面音频应用程序。我遇到了一种情况,似乎需要我点击 AudioToolbox C api 才能获得 AudioFileMarkerList。在任何较新的 AVStuff 中似乎都不支持此功能,因此您似乎仍需要使用 AudioToolbox API。
我很想听听有经验的人处理这些 C 结构,甚至更好地将它们与 Swift 联系起来。或者,如果有另一种方法可以从我丢失的声音文件中检索标记 - 我也很想知道。
快速概览:我正在开发一个 Mac Swift 桌面音频应用程序。我遇到了一种情况,似乎需要我点击 AudioToolbox C api 才能获得 AudioFileMarkerList。在任何较新的 AVStuff 中似乎都不支持此功能,因此您似乎仍需要使用 AudioToolbox API。
我很想听听有经验的人处理这些 C 结构,甚至更好地将它们与 Swift 联系起来。或者,如果有另一种方法可以从我丢失的声音文件中检索标记 - 我也很想知道。
这是答案,以防将来有人遇到此问题。
// get size of markers property (dictionary)
UInt32 propSize;
UInt32 writable;
[EZAudioUtilities checkResult:AudioFileGetPropertyInfo( self.audioFileID,
kAudioFilePropertyMarkerList,
&propSize,
&writable)
operation:"Failed to get the size of the marker list"];
size_t length = NumBytesToNumAudioFileMarkers( propSize );
// allocate enough space for the markers.
AudioFileMarkerList markers[ length ];
if ( length > 0 ) {
// pull marker list
[EZAudioUtilities checkResult:AudioFileGetProperty( self.audioFileID,
kAudioFilePropertyMarkerList,
&propSize,
&markers)
operation:"Failed to get the markers list"];
} else {
return NULL;
}
//NSLog(@"# of markers: %d\n", markers->mNumberMarkers );