我正在尝试允许应用程序的用户观看流式视频。我在 iFrame 中使用当前的 youtube API,并且可以显示视频,但是没有任何事件(特别是我对 onStateChange 感兴趣)可以调用。
onYouTubePlayerAPIReady 已成功调用。
这是我正在加载到 UIWebView 中的 html 脚本(我正在监听 'window.location = ...' 这就是我可以告诉 onYouTubePlayerAPIReady() 被调用的方式;这纯粹是调试):
NSString* htmlString = @"<!DOCTYPE html> \
<html> \
<head> \
<style>body{margin:0px 0px 0px 0px;}</style> \
</head> \
<body> \
<div id=\"player\"></div> \
<script> \
var tag = document.createElement('script'); \
tag.src = \"http://www.youtube.com/player_api\"; \
var firstScriptTag = document.getElementsByTagName('script')[0]; \
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); \
var player; \
\
function onYouTubePlayerAPIReady() { \
window.location = 'myapp:myaction:param1:param2';\
player = new YT.Player('player', { width:480, height:360, videoId:'-0Xa4bHcJu8', events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange } }); \
} \
\
function onPlayerReady(event) { \
window.location = 'myapp:myaction:param1:param2';\
event.target.playVideo(); \
} \
\
function onPlayerStateChange(event) { \
window.location = 'myapp:myaction:param1:param2';\
if (event.data == YT.PlayerState.ENDED) { \
window.location = 'myapp:myaction:param1:param2';\
} \
} \
</script> \
</body> \
</html>";
[webView_ loadHTMLString:htmlString baseURL:nil];