func extractAudioFromVideo(videoUrl:NSURL, audioPath:String){
//2
var asset = AVURLAsset(URL: videoUrl, options: nil)
asset.loadValuesAsynchronouslyForKeys(NSArray(object: "tracks") as [AnyObject], completionHandler: { () -> Void in
var audioTrack = asset.tracksWithMediaType(AVMediaTypeAudio)[0] as! AVAssetTrack
var audioComposition = AVMutableComposition()
var audioCompositionTrack:AVMutableCompositionTrack!
audioCompositionTrack = audioComposition.addMutableTrackWithMediaType(AVMediaTypeAudio, preferredTrackID: CMPersistentTrackID())
audioCompositionTrack.insertTimeRange(audioTrack.timeRange, ofTrack: audioTrack, atTime: CMTimeMake(0, 1), error: nil)
var exportSession = AVAssetExportSession(asset: audioComposition, presetName: AVAssetExportPresetAppleM4A)
var toFileUrl = NSURL(fileURLWithPath: audioPath)
exportSession.outputURL = toFileUrl
exportSession.outputFileType = "com.apple.m4a-audio"
exportSession.exportAsynchronouslyWithCompletionHandler({ () -> Void in
if exportSession.status == AVAssetExportSessionStatus.Completed {
println("Succes")
}else{
println("not working")
}
})
})
}
我使用上述代码从视频中获取音频,但它会输出“not working”。
我的音频路径是:
var outStr = NSBundle.mainBundle().pathForResource("cheeseburger", ofType: "m4a")
请帮我解决这个问题。谢谢。