2013-07-24 3 views
0

У меня есть видеоигра youtube, теперь при нажатии на UIButton для отключения звука мне нужно отключить видео. Для этого у меня есть javascript-код, но мне нужно позвонить ему по клику UIButton. Как мне это сделать?ios: вызов функции javascript на UIButton нажмите

-(void)viewWillAppear:(BOOL)animated 
{ 
    float width = 309.0f; 
    float height = 196.0f; 
    UIWebView *wv = [[UIWebView alloc] init]; 
    wv.frame = CGRectMake(0, 0, width, height); 

    _webViewVideo.allowsInlineMediaPlayback = YES; 
    _webViewVideo.mediaPlaybackRequiresUserAction = NO; 

// @"<!DOCTYPE html><html> <body><div id=\"player\"></div><script>var tag = document.createElement('script');tag.src = \"https://www.youtube.com/iframe_api\";var firstScriptTag = document.getElementsByTagName('script')[0];firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);var player;function onYouTubeIframeAPIReady() {player = new YT.Player('player', {height: '390',width: '640',videoId: 'M7lc1UVf-VE', autoplay:1, controls:0, events: {'onReady': onPlayerReady,'onStateChange': onPlayerStateChange}});}function onPlayerReady(event) {event.target.playVideo();}var done = false;function onPlayerStateChange(event) {if (event.data == YT.PlayerState.PLAYING && !done) {setTimeout(stopVideo, 6000);done = true;}}function stopVideo() {player.stopVideo();}</script></body></html>"; 

    NSString *htmlString [email protected]"<!DOCTYPE html><html> <body><div id=\"player\"></div><script>var tag = document.createElement('script');tag.src = \"https://www.youtube.com/iframe_api\";var firstScriptTag = document.getElementsByTagName('script')[0];firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);var player;function onYouTubeIframeAPIReady() {player = new YT.Player('player', {height: '196',width: '309',videoId: 'GOiIxqcbzyM',playerVars: {playsinline: 1, controls: 0}, events: {'onReady': onPlayerReady,'onStateChange': onPlayerStateChange}});} function **muteVideo**(){player.mute();}function onPlayerReady(event) {event.target.playVideo();}var done = false;function onPlayerStateChange(event) {if (event.data == YT.PlayerState.PLAYING && !done) {muteVideo();done = true;}}function stopVideo() {}</script></body></html>"; 
    _webViewVideo.delegate = self; 

    [_webViewVideo loadHTMLString:htmlString baseURL:[[NSBundle mainBundle] resourceURL]]; 
} 
- (IBAction)btnMute_click:(id)sender { 

    [_webViewVideo stringByEvaluatingJavaScriptFromString:@"muteVideo();"]; //not working 
} 

Как мне назвать muteVideo здесь?

ответ

0

Я пробовал это и, похоже, работает. Дайте ему шанс, если это будет правильно. :-)

[_webViewVideo loadHTMLString:@"muteVideo();" baseURL:[[NSBundle mainBundle] resourceURL]]; 
Смежные вопросы