Для моего приложения мне нужно встроить ролик Youtube в приложение iOS. Я использую следующее руководство для встраивания видео: http://apiblog.youtube.com/2009/02/youtube-apis-iphone-cool-mobile-apps.html, 2-й метод.
Иногда это работает, а иногда не работает, и я получаю предупреждение с сообщением «этот фильм не может быть воспроизведен». Проблема не связана с конкретным устройством или версией iOS.
Используя прокси, я смог выяснить, что в случаях, когда фильм не воспроизводится, мы получаем только 5 тегов "movie: content" с фильмом в 5 разных кодеках.
- type = "video / mp4" medium = "video" isDefault = "true" expression = "full" duration = "40" yt: format = "3"
- type = "video / 3gpp" medium = "video" expression = "full" duration = "40" yt: format = "2"
- type = "application / x-shockwave-flash" medium = "video" expression = "full" duration = "40" yt: format = "5"
- type = "video / 3gpp" medium = "video" expression = "full" duration = "40" yt: format = "1"
- type = "video / 3gpp" medium = "video" expression = "full" duration = "40" yt: format = "6"
В случае, если он воспроизводит фильм, я получаю 9 тегов "movie: content":
- type = "video / mp4" medium = "video" isDefault = "true" expression = "full" duration = "40" yt: format = "3"
- type = "video / 3gpp" medium = "video" expression = "full" duration = "40" yt: format = "2"
- type = "application / x-shockwave-flash" medium = "video" expression = "full" duration = "40" yt: format = "5"
- type = "video / 3gpp" medium = "video" expression = "full" duration = "40" yt: format = "1"
- type = "video / 3gpp" medium = "video" expression = "full" duration = "40" yt: format = "6"
- type = "video / x-flv" medium = "video" expression = "full" duration = "40" yt: format = "7"
- type = "video / mp4" medium = "video" expression = "full" duration = "40" yt: format = "8"
- type = "video / 3gpp" medium = "video" expression = "full" duration = "40" yt: format = "9"
- type = "video / 3gpp" medium = "video" expression = "full" duration = "40" yt: format = "10"
Мне нужно следующее: type = "video / mp4" medium = "video" expression = "full" duration = "40" yt: format = "8".
Я всегда получаю ответ от того же сервера, http://v23.lscache3.googlevideo.com.
В один момент фильм загружается нормально, а через десять минут он больше не проигрывается. Это на том же устройстве, с использованием того же подключения к Интернету (Wi-Fi не более 3G).
Я что-то не так делаю или есть способ заставить YouTube получить определенный кодек? Я попробовал этот случайный фильм на Youtube, и у всех, похоже, есть эта проблема.