2
A
回答
3
可能有不止一種方式,但AVAssetExportSession
很簡單,有效。
N.B.這會創建一個新文件。 AVFoundation
並不是真的做就地修改。
#import <AVFoundation/AVFoundation.h>
#import <CoreMedia/CoreMedia.h>
// ...
NSURL *outputURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/output.m4a", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]]];
[[NSFileManager defaultManager] removeItemAtURL:outputURL error:nil];
NSURL *inputURL = [[NSBundle mainBundle] URLForResource:@"foo" withExtension:@"m4a"];
AVAsset *asset = [AVAsset assetWithURL:inputURL];
AVAssetExportSession *session = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetPassthrough];
session.outputURL = outputURL;
session.outputFileType = AVFileTypeAppleM4A;
AVMutableMetadataItem *metaTitle = [[AVMutableMetadataItem alloc] init];
metaTitle.identifier = AVMetadataCommonIdentifierTitle; // more in AVMetadataIdentifiers.h
metaTitle.dataType = (__bridge NSString *)kCMMetadataBaseDataType_UTF8; // more in CoreMedia/CMMetadata.h
metaTitle.value = @"Choon!";
AVMutableMetadataItem *metaArtist = [[AVMutableMetadataItem alloc] init];
metaArtist.identifier = AVMetadataCommonIdentifierArtist;
metaArtist.dataType = (__bridge NSString *)kCMMetadataBaseDataType_UTF8;
metaArtist.value = @"Me, of course";
session.metadata = @[metaTitle, metaArtist];
[session exportAsynchronouslyWithCompletionHandler:^{
if (session.status == AVAssetExportSessionStatusCompleted) {
// hurray
}
}];
這個例子是m4a
文件,你需要改變文件擴展名mp4
和outputFileType
到AVFileTypeMPEG4
。
相關問題
- 1. 在wordpress中編輯元標記
- 2. 基於文件名編輯mp3文件的藝術家標記
- 3. JQuery標記它 - 編輯標記內聯
- 4. 編輯文件,目標C
- 5. Django文本標記編輯器
- 6. Asp.Net MVC + R#標記編輯
- 7. DD_belatedPNG沒有編輯標記
- 8. Angular2 PrimeNG編輯髒標記
- 9. 編輯.ASPX文件時用於非HTML標記的IntelliSense?
- 10. 如何從Java編輯xsl標記屬性文件
- 11. 如何在Subclipse中將文件標記爲編輯
- 12. perforce提交文件標記爲「編輯」或「整合」,爲什麼?
- 13. Eclipse文本編輯器中的多個遊標標記
- 14. 標記爲刪除的文件,實際上也被替換爲文件系統,想要標記爲編輯
- 15. 如何標記Kendo Grid的單元格編輯?
- 16. PhotoSwipe:編輯parseThumbnailElements函數來分析額外的標記元素
- 17. 如何編輯Joomla 2.5中的元標記
- 18. TYPO3:由編輯器設置的元標記
- 19. PHP結束標記和邏輯文件
- 20. 獲取mediaWiki的編輯標記fauxRequest
- 21. 在html中編輯src =「」標記的C++
- 22. 如何獲取Mediawiki的編輯標記?
- 23. html編輯器的wordpress默認標記
- 24. 編輯元數據對視頻文件
- 25. 編輯文件
- 26. 編輯文件
- 27. 用ansible編輯多個目標文件?
- 28. 編輯plist文件(目標c)
- 29. 編輯元素的編號+ make插件
- 30. HTML編輯器 - 同時編輯開始和結束標記