2012-08-12 3 views
0

AVAudioRecorder를 사용하여 AAC로 인코딩 된 .m4a 파일을 만들고 저장합니다. 이렇게하면 재생 가능한 .m4a 파일이 정상적으로 생성됩니다. 그런 다음 AVAssetExportSession을 사용하여 메타 데이터를 파일에 추가하기 위해 파일을 처리하려고합니다. 아래 코드는 비슷한 크기 (소스보다 1KB 작음)의 .m4a 파일을 생성하지만 재생할 때 단지 무음입니다. 정보의AVAssetExportSession을 통해 AAC M4A에 메타 데이터 추가

NSURL* url = [NSURL fileURLWithPath:self.m4aPath]; 
AVURLAsset* asset = [AVAsset assetWithURL:url]; 
AVMutableMetadataItem* t = [AVMutableMetadataItem metadataItem]; 
t.key = AVMetadataCommonKeyTitle; 
t.keySpace = AVMetadataKeySpaceCommon; 
t.value = @"Unit Test"; 
NSArray* metadata = [NSArray arrayWithObject:t]; 

AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetAppleM4A]; 

exportSession.outputURL = [NSURL fileURLWithPath:[[NSFileManager rawRecordingsDirectory] stringByAppendingPathComponent:@"test.m4a"]]; 
exportSession.outputFileType = AVFileTypeAppleM4A; 
exportSession.metadata = metadata; 

[exportSession exportAsynchronouslyWithCompletionHandler:^{....}]; 

하나 개 더 조각 : 나는 소스보고 Finder에서 파일을 내보낼 때 내 보낸 파일은 흰색 iTunes 아이콘을 가지고있는 동안, 소스 파일, 검은 아이튠즈 아이콘이 있습니다. 실제로 이것이 무엇을 의미하는지 확신 할 수 없지만 도움이되기를 희망합니다. 또한, 소스를 두 번 클릭하면 iTunes에 추가되고 재생이 시작되지만 내 보낸 iTunes를 두 번 클릭해도 아무 것도 재생되지 않습니다.

답변

0

내 출력 m4a 파일에 흰색 아이콘 (검은 색 대신)이 있고 재생되지 않는 것과 비슷한 문제가있었습니다. 그것이 원시 샘플 파일에서 메타 데이터를 추가 할 때가 아니라 원본 샘플 파일을 만들 때였습니다.

내 문제는 내가 내 코드에서 내 보낸 파일을 닫지 않았다는 것입니다 (저는 닫기 함수를 호출하기 전에 앱을 종료했습니다). 닫기 함수를 호출하면 작업이 시작되었습니다. 그것을 확인하고 싶을 수도 있습니다.

또한 "open-> Quicktime"이 유용하기 때문에 파일이 손상되었을 때 오류가 발생하고 유용하지 않을 때 유용합니다. iTunes가 오류를 자동으로 무시하는 것보다 유용합니다.

관련 문제