tutaj kod, który pomoże Ci wyeksportować mp4 z biblioteki muzycznej
func displayMediaPicker() {
let mediaPicker = MPMediaPickerController.init(mediaTypes: .anyAudio)
mediaPicker.delegate = self
mediaPicker.allowsPickingMultipleItems = false
mediaPicker.loadView();
self.present(mediaPicker, animated: true, completion: nil)
}
func mediaPicker(_ mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) {
//
self.dismiss(animated:true)
if mediaItemCollection.count > 0 {
let mediaItem = mediaItemCollection.items[0]
let assetURL = mediaItem.value(forProperty: MPMediaItemPropertyAssetURL)
let mediaAsset = AVURLAsset(url: assetURL as! URL, options: nil)
let exporter = AVAssetExportSession.init(asset: mediaAsset, presetName: AVAssetExportPresetMediumQuality)
exporter?.outputFileType = AVFileType.mp4
let mediaPathToSave = //assign destination path here
let exportURL = URL(fileURLWithPath: mediaPathToSave)
exporter?.outputURL = exportURL
// if incase you need first 30 seconds
let startTime = CMTimeMake(0, 1)
let stopTime = CMTimeMake(30, 1)
let exportTimeRange = CMTimeRangeFromTimeToTime(startTime, stopTime)
exporter?.timeRange = exportTimeRange
exporter?.exportAsynchronously(completionHandler: {
//
let status = exporter?.status
if status == AVAssetExportSessionStatus.completed {
print("AVAssetExportSessionStatus successfull")
//do further code for exported file here
}
})
}
}
Ta odpowiedź nie jest poprawna. Jeśli eksportujesz plik MP3 z biblioteki, jest on już zakodowany, nie musisz ponownie kodować do pliku mp3. Użyłem QuickTimeMovie jako typu pliku, aby pomyślnie wyeksportować plik mp3 z biblioteki do systemu plików. – Dermot
@Dermot możesz podzielić się tym kodem. . Robię to samo w Swift, ale nie na szczęście, pomóż –
Listopad 1999: LAME przełącza się z licencji GPL na licencję LGPL, co pozwala na używanie jej z aplikacjami o zamkniętym kodzie źródłowym. – Dalmazio