Почему AVURLAsset не загружает файл? - PullRequest
0 голосов
/ 27 сентября 2018

OK.У меня неприятное ощущение, что это будет встречаться с нежным щебетом сверчков ...

Я основываюсь на этом и этом .

Мне действительно интересно, является ли это функцией, а не ошибкой, так как, возможно, есть проблема безопасности с загрузкой фильма локально, а затем с его воспроизведением.Я думаю, что это не так, но возможно.Следует отметить, что загруженный ресурс происходит от взаимодействия REST с сервером, в котором данные фильма фактически являются лишь частью ответа на запрос данных.Это не что-то, что загружается прямо со страницы потокового видео (хотя это SSL).

Я довольно зеленый в AV Foundation.

У меня есть следующий код:

do {
    // We create a path to a unique temporary file to grab the media.
    let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(UUID().uuidString)
    // Store the media in the temp file.
    try myData.write(to: url, options: .atomic)
    let options = [AVURLAssetPreferPreciseDurationAndTimingKey: true]
    let asset = AVURLAsset(url: url, options: options)

    if 0 < asset.tracks.count {
        print("YOU GET \(asset.tracks.count) TRACKS!")
    } else {
        print("NO TRACKS FOR YOU!")
    }
} catch let error {
    NSLog("Error Encoding AV Media: %@", error._domain)
}

Довольно просто, а?Переменная «myData» содержит загруженный фильм MP4 (.m4v).Я записываю его во временный файл, а затем загружаю этот временный файл с помощью AVURLAsset , точно так же, как и сказано.

Проблема в том, что я никогда не смогу воспроизвести фильм dangblammit.Файл там, где он должен быть.Я могу выловить временный файл, дать пощечину расширению «.m4v» и воспроизвести его в QT Viewer.

Я вполне готов принять удар головой вверх, а затем «ya darn eedjut!", но я хотел бы знать, какую" М "мне следует" RTFM ".

1 Ответ

0 голосов
/ 27 сентября 2018

Проблема, кажется, с этой строкой

let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(UUID().uuidString)

Вы должны добавить расширение для файла.

let videoName = UUID().uuidString + ".mp4"
let url = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(videoName)

Надеюсь, что это исправить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...