我正在尝试在通用应用中混合使用this technique和this Youtube SDK blog post来嵌入Youtube视频。 iPhone版本使用相同的代码,工作正常。 在iPad上,视频会嵌入,并且在嵌入式窗体中播放效果很好,但只要点击全屏按钮,应用程序就会崩溃(按钮不响应,设备不会旋转)。来自Youtube视频的音乐一直在播放。
没有记录错误消息,但应用确实注册为“暂停”或挂在xCode中。每次崩溃com.apple.libdispatch-manager都在线程2.问我问题,我会给你更多关于错误的信息,但我不知道从哪里开始。
我试过了:
我正在为iOS 5.1构建,如果在iOS6上运行则不会发生这种情况。
视频嵌入的视图是模态的,包括手机和iPad。应用程序中没有任何hackery或不寻常的事情发生。
似乎有人说Evernote的应用程序有similar problem,但我不知道它是否相关。
供您参考,这里是YouTubeView子类(它是UIWebView的子类):
- (YouTubeView *)initWithStringAsURL:(NSString *)urlString frame:(CGRect)frame;
{
if (self = [super init])
{
// Create webview with requested frame size
self = [[YouTubeView alloc] initWithFrame:frame];
// HTML to embed YouTube video
// NSString *youTubeVideoHTML = @"<html><head>
// <body style=\"margin:0\">
// <embed id=\"yt\" src=\"%@\"
// type=\"application/x-shockwave-flash\"
// width=\"%0.0f\" height=\"%0.0f\">
// </embed>
// </body>
// </html>";
NSString *youTubeVideoHTML = @"<html><head><meta name = \"viewport\" content = \"initial-scale = 1.0, user-scalable = no, width = %0.0f\"/></head><body style=\"background:#FFF;margin-top:0px;margin-left:0px\"><div><object width=\"%0.0f\" height=\"%0.0f\"><param name=\"movie\" value=\"%@\"></param><param name=\"wmode\" value=\"transparent\"></param><embed src=\"%@\"type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"%0.0f\" height=\"%0.0f\"></embed></object></div></body></html>";
// Populate HTML with the URL and requested frame size
// NSString *html = [NSString stringWithFormat:youTubeVideoHTML, urlString, frame.size.width, frame.size.height];
NSLog(@"html:\n %@", youTubeVideoHTML);
NSString *html = [NSString stringWithFormat:youTubeVideoHTML, frame.size.width, frame.size.width, frame.size.height, urlString, urlString, frame.size.width, frame.size.height];
NSLog(@"html:\n %@", html);
// Load the html into the webview
[self loadHTMLString:html baseURL:nil];
}
return self;
}