Reputation: 505
Hello i have app with webviews and i embed youtube video. Now i have iOS6 installed but they don't work anymore.
Does someone has already find a solution?
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];
}
Upvotes: 12
Views: 12363
Reputation: 1180
//from Qiqi help i have played youtube video in ios6 as follows and it is working for me
//this is my url of 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];
Upvotes: 5
Reputation: 23359
Great question and an issue I just noticed and was out to find the solution.
I did find this quote in the iOS 6 release notes under the Safari/WebKit section:
As of iOS 6, embedded YouTube URLs in the form of http://www.youtube.com/watch?v=oHg5SJYRHA0 will no longer work. These URLs are for viewing the video on the YouTube site, not for embedding in web pages. Instead, the format that should be used is described here: https://developers.google.com/youtube/player_parameters.
Back over on google developer site it seems video player should be embedded by using an iframe, shouldn't be too much more work.
Hope that helps.
Upvotes: 11
Reputation: 1368
If you don't need straigh-forward auto-play, then you can perhaps use iframe with play button
<iframe height="90" width="75" src="http://www.youtube.com/embed/VIDEOID"></iframe>
, when you press play button, fullscreen player takes over (at least for my apps in iOS 6)
If you compile app with older Base SDK 5.1 (5.0), any kind of old YouTube embedding should still work even in iOS 6. Like:
<embed src="http://www.youtube.com/watch?v=VIDEOID" type="application/x-shockwave-flash" widht="64" height="64"></embed>
Upvotes: 3