1

我正在尝试允许应用程序的用户观看流式视频。我在 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];
4

1 回答 1

1

我也在尝试以同样的方式自动播放视频。当我没有将 nil 传递给基本 URL时,它对我有用,现在它停止工作,只需尝试将基本 url 从 nil 更改为 [[NSBundle mainBundle] resourceURL]。

于 2013-12-12T09:36:42.360 回答