Core Audio 中 Audio File Service 这样使用

该博客介绍了如何利用CoreAudio框架中的AudioFileService进行音频文件处理。首先,通过AudioFileOpenURL打开音频文件,获取音频处理ID。接着,使用AudioFileGetPropertyInfo获取音频文件的属性信息内存大小。最后,通过AudioFileGetProperty获取实际的属性信息。整个过程展示了在iOS中读取和操作音频文件的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Core Audio 中 , Audio File Service 三步走,

  • 本地文件,转音频处理 ID

通过 AudioFileOpenURL

  • 拿音频处理 ID , 获取信息的内存大小

AudioFileGetPropertyInfo

  • 那前面两个,获取信息

通过频处理 ID 和信息的内存大小 ,

获取信息

AudioFileGetProperty

 
int main (int argc, const char * argv[]) {

    
    // 先看参数的个数
	if (argc < 2) {
		printf ("Usage: CAMetadata /full/path/to/audiofile     SS\n");
		return -1;
	} // 1
    
    
    
	// 再去取参数
	NSString *audioFilePath = [[NSString stringWithUTF8String:argv[1]]
                                    stringByExpandingTildeInPath];	// 2
    
    
    
    
	NSURL *audioURL = [NSURL fileURLWithPath:audioFilePath];	// 3
	NSLog (@"audioURL: %@", audioURL);
	AudioFileID audioFile;	// 4
    
    
	OSStatus theErr = noErr;	// 5

	theErr = AudioFileOpenURL((__bridge CFURLRef)audioURL, kAudioFileReadPermission, 0, &audioFile); // 6
	assert (theErr == noErr);	// 7
    
    
    
	UInt32 dictionarySize = 0;	// 8
	theErr = AudioFileGetPropertyInfo (audioFile, kAudioFilePropertyInfoDictionary,
									   &dictionarySize, 0); // 9
    

    
    
    
	assert (theErr == noErr);	// 10
	CFDictionaryRef dictionary;	// 11
	theErr = AudioFileGetProperty (audioFile, kAudioFilePropertyInfoDictionary,
								   &dictionarySize, &dictionary); // 12
	assert (theErr == noErr);	// 13
	NSLog (@"\n\ndictionary: %@", dictionary);	// 14
    
    

    
    
    
	CFRelease (dictionary);	// 15
	theErr = AudioFileClose (audioFile);	// 16
	assert (theErr == noErr);	// 17
	
    
    
    
    return 0;
}

 


上面的 argv, 里面有两个参数。

命令行,添加参数

这样处理下

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值