AVPlayerを使用しているプレーヤー(URLを使用している)であるmp3ファイルをエクスポートしようとしていますので、2回ダウンロードする必要はありません。AVAslayerExportSessionを使用してAVPlayerオーディオmp3ファイルをエクスポートするにはどうすればよいですか?
これは私のサンプルコードです:
私はすべてのoutputFileTypeを試してみた...
self.exporter = [[AVAssetExportSession alloc] initWithAsset:self.asset presetName:AVAssetExportPresetPassthrough];
}
NSError *error;
NSLog(@"export.supportedFileTypes : %@",self.exporter.supportedFileTypes);
// "com.apple.quicktime-movie",
// "com.apple.m4a-audio",
// "public.mpeg-4",
// "com.apple.m4v-video",
// "public.3gpp",
// "org.3gpp.adaptive-multi-rate-audio",
// "com.microsoft.waveform-audio",
// "public.aiff-audio",
// "public.aifc-audio",
// "com.apple.coreaudio-format"
self.exporter.outputFileType = @"public.aiff-audio";
self.exporter.shouldOptimizeForNetworkUse = YES;
NSURL *a = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:&error];
NSURL *url = [a URLByAppendingPathComponent:@"filename.mp3"];
NSString *filePath = [url absoluteString];
self.exporter.outputURL = url;
if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]){
[self.exporter exportAsynchronouslyWithCompletionHandler:^{
if (self.exporter.status == AVAssetExportSessionStatusCompleted)
{
if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]){
NSLog(@"File doesn't exist at path");
}else {
[email protected]"File saved!");
}
}
else if(self.exporter.status == AVAssetExportSessionStatusFailed){
NSLog(@"Failed");
}else if(self.exporter.status == AVAssetExportSessionStatusUnknown){
NSLog(@"Unknown");
}else if(self.exporter.status == AVAssetExportSessionStatusCancelled){
NSLog(@"Cancelled");
}else if(self.exporter.status == AVAssetExportSessionStatusWaiting){
NSLog(@"Waiting");
}else if(self.exporter.status == AVAssetExportSessionStatusExporting){
NSLog(@"Exporting");
}
NSLog(@"Exporter error! : %@",self.exporter.error);
}];
}}else{
NSLog(@"File already exists at path");
}
これを達成することができない場合には、周りにどんな仕事があるのでしょうか?
また、オーディオファイルの形式を変更することもできます。 AVAudioPlayerで動作するのに理想的なタイプは何ですか?
はい、でもAppleの独自のAVFoundationExporterのサンプルプロジェクトは、mp3で動作するようには思えませんファイルとAVAssetExportPresetPassthroughプリセットを設定します。 – Dalmazio
こちらの回答を参考にしてください。 https://stackoverflow.com/a/47327516/1682312 –