IOS 6 встраивает youtube
Привет, у меня есть приложение с веб-просмотрами, и я вставляю youtube-видео.
Теперь у меня установлен iOS6, но они больше не работают.
Кто-нибудь уже нашел решение?
mycode:
- (void)viewDidLoad
{
[scrollvideoView setScrollEnabled:YES];
[scrollvideoView setContentSize:CGSizeMake(320,2300)];
[scrollvideoView setPagingEnabled:NO];
[super viewDidLoad];
// Do any additional setup after loading the view.
//Variabelen
NSInteger x1 = 25;
NSInteger x2 = 123;
NSInteger x3 = 220;
NSInteger sz = 75;
//Label height rij1
NSInteger yt1 = 45;
/* de Videos */
//Eerste rij
NSInteger y1 = 0;
[self embedYouTube:@"http://www.youtube.com/watch?v=MFARZYEGqK8" frame:CGRectMake(x1, y1, sz, sz)];
[self embedYouTube:@"http://www.youtube.com/watch?v=cD7WHGvXqEA" frame:CGRectMake(x2, y1, sz, sz)];
[self embedYouTube:@"http://www.youtube.com/watch?v=8onqmHPBJOo" frame:CGRectMake(x3, y1, sz, sz)];
//Setting de labels
UILabel *videoLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(x1, yt1, sz, sz)];
videoLabel1.text = @"Videoclip daor heb ik schijt an";
[self.scrollvideoView addSubview:videoLabel1];
videoLabel1.backgroundColor = [UIColor clearColor];
videoLabel1.font = [UIFont fontWithName:@"Arial" size: 9.0];
videoLabel1.textColor = [UIColor whiteColor];
UILabel *videoLabel2 = [[UILabel alloc] initWithFrame:CGRectMake(x2, yt1, sz, sz)];
videoLabel2.text = @"Videoclip goeie been verkeerde bed";
[self.scrollvideoView addSubview:videoLabel2];
videoLabel2.backgroundColor = [UIColor clearColor];
videoLabel2.font = [UIFont fontWithName:@"Arial" size: 9.0];
videoLabel2.textColor = [UIColor whiteColor];
UILabel *videoLabel3 = [[UILabel alloc] initWithFrame:CGRectMake(x3, yt1, sz, sz)];
videoLabel3.text = @"Wavin flag (giel beelen)";
[self.scrollvideoView addSubview:videoLabel3];
videoLabel3.backgroundColor = [UIColor clearColor];
videoLabel3.font = [UIFont fontWithName:@"Arial" size: 9.0];
videoLabel3.textColor = [UIColor whiteColor];
//Tweede rij
NSInteger y2 = 100;
[self embedYouTube:@"http://www.youtube.com/watch?v=-cJz3YGRlMI" frame:CGRectMake(x1, y2, sz, sz)];
[self embedYouTube:@"http://www.youtube.com/watch?v=ZdQRcAnPCvk" frame:CGRectMake(x2, y2, sz, sz)];
[self embedYouTube:@"http://www.youtube.com/watch?v=KNcT5O1qk40" frame:CGRectMake(x3, y2, sz, sz)];
}
- (void)embedYouTube:(NSString *)urlString frame:(CGRect)frame {`
/*NSString *embedHTML = @"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: white;\
}\
</style>\
</head><body style=\"margin:0\">\
<embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \
width=\"%0.0f\" height=\"%0.0f\"></embed>\
</body></html>";
NSString *html = [NSString stringWithFormat:embedHTML, urlString, frame.size.width,`frame.size.height];
UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame];
[videoView loadHTMLString:html baseURL:nil];
[self.scrollvideoView addSubview:videoView];
//[videoView release];
}
Ответы
Ответ 1
Отличный вопрос и проблема, которую я только что заметил и нашел решение.
Я нашел эту цитату в примечаниях к выпуску iOS 6 в разделе Safari/WebKit:
Как и в iOS 6, встроенные URL-адреса YouTube в форме http://www.youtube.com/watch?v=oHg5SJYRHA0 больше не будет работать. Эти URL-адреса предназначены для просмотра видео на сайте YouTube, а не для встраивания на веб-страницах. Вместо этого описывается формат, который должен использоваться здесь: https://developers.google.com/youtube/player_parameters.
Вернувшись на сайт разработчика Google, кажется, что видеоплеер должен быть встроен с помощью iframe, не должно быть слишком много работы.
Надеюсь, что это поможет.
Ответ 2
//из Qiqi help, я сыграл youtube видео в ios6 следующим образом, и он работает для меня
//это мой URL-адрес youtube: http://www.youtube.com/watch? v = s9KU-oOa6pA
//VideoID: s9KU-oOa6pA
CGRect frame = CGRectMake(5,55, 310,200);
NSString *embedHTML =[NSString stringWithFormat:@"\
<html><head>\
<style type=\"text/css\">\
body {\
background-color: transparent;\
color: blue;\
}\
</style>\
</head><body style=\"margin:0\">\
<iframe height=\"200\" width=\"310\" src=\"http://www.youtube.com/embed/s9KU-oOa6pA\"></iframe>\
</body></html>"];
UIWebView *videoView = [[UIWebView alloc] initWithFrame:frame];
videoView.backgroundColor = [UIColor clearColor];
[videoView loadHTMLString:embedHTML baseURL:nil];
[self.view addSubview:videoView];
Ответ 3
Если вам не нужна автоматическая перемотка вперед, вы можете использовать iframe с кнопкой воспроизведения
<iframe height="90" width="75" src="http://www.youtube.com/embed/VIDEOID"></iframe>
когда вы нажимаете кнопку воспроизведения, полноэкранный проигрыватель переходит (по крайней мере, для моих приложений в iOS 6)
Если вы скомпилируете приложение со старым базовым SDK 5.1 (5.0), любой вид старого встраивания YouTube должен работать даже в iOS 6. Как:
<embed src="http://www.youtube.com/watch?v=VIDEOID" type="application/x-shockwave-flash" widht="64" height="64"></embed>