Objective c 如何从录制的视频文件中提取音频 你好,我正在从视频文件中提取音频。 它在=iOS 8.0版本中不工作。 如何在>=iOS 8.0版本中提取音频?

Objective c 如何从录制的视频文件中提取音频 你好,我正在从视频文件中提取音频。 它在=iOS 8.0版本中不工作。 如何在>=iOS 8.0版本中提取音频?,objective-c,ios8,avassetexportsession,avmetadataitem,Objective C,Ios8,Avassetexportsession,Avmetadataitem,使用AVAssetExportSession将视频文件转换为音频。 你可以用这个方法 - (void)convertVideoToAudioWithInputURL:(NSURL*)inputURL outputURL:(NSURL*)outputURL handler:(void (^)(AVAssetExportSession*))handler {

使用AVAssetExportSession将视频文件转换为音频。 你可以用这个方法

- (void)convertVideoToAudioWithInputURL:(NSURL*)inputURL
                                   outputURL:(NSURL*)outputURL
                                     handler:(void (^)(AVAssetExportSession*))handler
{
    AVURLAsset* asset = [AVURLAsset URLAssetWithURL:inputURL options:nil];
    self.exportSession = [[AVAssetExportSession alloc] initWithAsset:asset
                                                          presetName: AVAssetExportPresetPassthrough];
    self.exportSession.outputURL = outputURL;
    self.exportSession.outputFileType = AVFileTypeAppleM4A; //For audio file
    self.exportSession.timeRange = CMTimeRangeMake(kCMTimeZero, [asset duration]);

        [self.exportSession exportAsynchronouslyWithCompletionHandler:^(void) {
            handler(self.exportSession);
        }];
}

在outputUrl处处理文件以供进一步使用:

使用AVAssetExportSession将视频文件转换为音频。 你可以用这个方法

- (void)convertVideoToAudioWithInputURL:(NSURL*)inputURL
                                   outputURL:(NSURL*)outputURL
                                     handler:(void (^)(AVAssetExportSession*))handler
{
    AVURLAsset* asset = [AVURLAsset URLAssetWithURL:inputURL options:nil];
    self.exportSession = [[AVAssetExportSession alloc] initWithAsset:asset
                                                          presetName: AVAssetExportPresetPassthrough];
    self.exportSession.outputURL = outputURL;
    self.exportSession.outputFileType = AVFileTypeAppleM4A; //For audio file
    self.exportSession.timeRange = CMTimeRangeMake(kCMTimeZero, [asset duration]);

        [self.exportSession exportAsynchronouslyWithCompletionHandler:^(void) {
            handler(self.exportSession);
        }];
}

在outputUrl处处理文件以供进一步使用:

如果我的inputURL链接到视频,我想提取视频的mp3并将其下载到手机上,这将如何实现?这种方法会像下载视频一样使用数据吗?请帮我解决这个问题THANKS@user3783005对于能够从任何视频数据块中提取音频的方法,它需要手头有一块视频。无法在视频源处处理该视频块。因此,是的,exportAsynchronouslyWithCompletionHandler一次下载/获取一块视频,对其进行处理,并将其附加到输出文件中。直截了当的回答,是的-您将像下载视频一样使用完数据。如果我的inputURL链接到视频,并且我想提取视频的mp3并将其下载到手机上,这将如何实现?这种方法会像下载视频一样使用数据吗?请帮我解决这个问题THANKS@user3783005对于能够从任何视频数据块中提取音频的方法,它需要手头有一块视频。无法在视频源处处理该视频块。因此,是的,exportAsynchronouslyWithCompletionHandler一次下载/获取一块视频,对其进行处理,并将其附加到输出文件中。直截了当的回答,是的-你会像下载视频一样用完数据。