Операция Swift AVAssetExportSession остановленаIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Операция Swift AVAssetExportSession остановлена

Сообщение Anonymous »


Я пытаюсь экспортировать файл .wav из видеофайла, извлеченного из UIImagePickerController

UIImagePickerController.InfoKey.mediaURL

Пример URL-адреса, переданного в функцию:

file:///private/var/mobile/Containers/Data/PluginKitPlugin/BCE1C3A1-AA62-4D89-9487-05E19DB476A7/tmp/trim.3C31A33B-A99E-45B7-9101-5C225CFCFF2B.MOV

Я могу успешно использовать эту функцию для извлечения файла m4a, но не могу заставить ее работать с файлом WAV. Ошибка, которую я получаю при запуске приведенного ниже кода: "Извлечение аудио из WAV завершилось с ошибкой: операция остановлена"


Я не знаю, почему я получаю сообщение об ошибке «Операция остановлена» в файле wav, а не в файле m4a? Альтернатива, которую я попробовал, — это преобразовать m4a в wav постфактум и получить ту же ошибку...
func ExtractAudioAsWAV(from mediaURL: URL) { пусть inputAsset = AVAsset (url: mediaURL) пусть outputFilePath = URL (fileURLWithPath: NSTemporaryDirectory() + «out.wav») пусть audioAsset = inputAsset.tracks(withMediaType: .audio).first если пусть audioAsset = audioAsset { пусть композиция = AVMutableComposition() let audioTrack = Composition.addMutableTrack(withMediaType: .audio,eferredTrackID: kCMPersistentTrackID_Invalid) делать { попробуйте audioTrack?.insertTimeRange(CMTimeRange(start: CMTime.zero, продолжительность: inputAsset.duration), of: audioAsset, at: CMTime.zero) let ExportSession = AVAssetExportSession (актив: композиция, PresetName: AVAssetExportPresetPassthrough) ExportSession?.outputFileType = AVFileType.wav ExportSession?.outputURL = URL(fileURLWithPath: outputFilePath.absoluteString) ExportSession?.exportAsynchronous(completionHandler: { если ExportSession?.status == .completed { print("Извлечение аудио в формат WAV завершено.") } else if let error = ExportSession?.error { print("Извлечение аудио в формате WAV не удалось с ошибкой: \(error.localizedDescription)") } }) } ловить { print("Ошибка: \(error.localizedDescription)") } } } func imagePickerController (_ Picker: UIImagePickerController, DidFinishPickingMediaWithInfo информация: [UIImagePickerController.InfoKey: Any]) { пусть videoURL = info[UIImagePickerController.InfoKey.mediaURL] как? НГУУРЛ self.dismiss(анимация: правда, завершение: ноль) ExtractAudioAsWAV (из: videoURL! как URL-адрес) } func PresentImagePicker() { imagePickerController.sourceType = .photoLibrary imagePickerController.delegate = сам imagePickerController.mediaTypes = ["public.movie"] присутствует (imagePickerController, анимированный: true, завершение: ноль) }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • AVAssetExportSession: идентификаторы треков не сохраняются
    Anonymous » » в форуме IOS
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • AvassetExportSession не удастся с «прерванной операцией» после слияния сегментов аудио (iOS async/watiate)
    Anonymous » » в форуме IOS
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • IOS: не может экспортировать движения с помощью avassetexportsession
    Anonymous » » в форуме IOS
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Не удается экспортировать движения, используя avassetexportsession
    Anonymous » » в форуме IOS
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Могу ли я объединить C++ и Swift в одном пакете Swift, используя диспетчер пакетов Swift?
    Гость » » в форуме C++
    0 Ответы
    221 Просмотры
    Последнее сообщение Гость

Вернуться в «IOS»