プラットフォーム:iOS6.1。Xcode4.6。
YouTubeJavascriptAPIとUIWebViewを使用しています。ビデオのサムネイルを手動でタップして、問題なく再生を開始できます。しかし、自動再生は機能していません。多くの人が示唆しているように、私はWebビューにmediaPlaybackRequiresUserAction=NOを設定しています。運がない。
コードは次のとおりです。
@interface VideoPlayerController : UIViewController <UIWebViewDelegate>
@property(strong, nonatomic) IBOutlet UIWebView* webView;
@end
- (void) viewDidLoad
{
[super viewDidLoad];
self.webView.delegate = self;
NSString *template = [NSString stringWithContentsOfFile:
[[NSBundle mainBundle]
pathForResource:@"YouTubeTemplate" ofType:@"txt"]];
NSString *htmlStr = [NSString stringWithFormat: template,
200, 200,
@"3G4exdlsRkY"];
self.webView.mediaPlaybackRequiresUserAction = NO;
[self.webView loadHTMLString:htmlStr baseURL:nil];
}
- (void) webViewDidFinishLoad:(UIWebView *)wv {
self.webView.mediaPlaybackRequiresUserAction = NO;
}
YouTubeTemplate.txtファイルは次のとおりです。
<html>
<head>
<script src="https://www.youtube.com/player_api"></script>
<style>
body, div {
margin: 0px;
padding: 0px;
}
</style>
</head>
<body>
<div id="media_area"></div>
</body>
<script>
var ytPlayer = null;
function onYouTubePlayerAPIReady() {
ytPlayer = new YT.Player('media_area', {height: '%d', width: '%d', videoId: '%@',
events: {'onReady': onPlayerReady}
});
}
function onPlayerReady(e) {
e.target.playVideo();
}
</script>
</html>
したがって、基本的に、UIWebViewはビデオのサムネイルを表示します。次に、それをタップして再生を開始する必要があります。自動再生が機能していません。私が間違っているかもしれない何か考えはありますか?