2012-02-28 4 views
0

私はhttp://code.google.com/apis/ajax/playground/?exp=youtube#chromeless_playerで提供されているデモで作業しています。私は、プレーヤーをHTML5にしたり、iOSデバイスと互換性を持たせる方法があるかどうか疑問に思っています。私はそれをどうやってやるのか分かりませんでしたか?私は私のiPhoneから試してみたので、コードが箱から出てこないと思うし、動作しないようだ...私がこれを使用している最大の理由は、音量を調整してビデオイベントが変更されます...YouTube APIを使用してHTML5とiOSデバイスをサポートするにはどうすればよいですか?

<!-- 
You are free to copy and use this sample in accordance with the terms of the 
Apache license (http://www.apache.org/licenses/LICENSE-2.0.html) 
--> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/> 
    <title>YouTube Player API Sample</title> 
    <style type="text/css"> 
     #videoDiv { 
     margin-right: 3px; 
     } 
     #videoInfo { 
     margin-left: 3px; 
     } 
    </style> 
    <script src="http://www.google.com/jsapi" type="text/javascript"></script> 
    <script type="text/javascript"> 
     google.load("swfobject", "2.1"); 
    </script>  
    <script type="text/javascript"> 
     /* 
     * Chromeless player has no controls. 
     */ 

     // Update a particular HTML element with a new value 
     function updateHTML(elmId, value) { 
     document.getElementById(elmId).innerHTML = value; 
     } 

     // This function is called when an error is thrown by the player 
     function onPlayerError(errorCode) { 
     alert("An error occured of type:" + errorCode); 
     } 

     // This function is called when the player changes state 
     function onPlayerStateChange(newState) { 
     updateHTML("playerState", newState); 
     } 

     // Display information about the current state of the player 
     function updatePlayerInfo() { 
     // Also check that at least one function exists since when IE unloads the 
     // page, it will destroy the SWF before clearing the interval. 
     if(ytplayer && ytplayer.getDuration) { 
      updateHTML("videoDuration", ytplayer.getDuration()); 
      updateHTML("videoCurrentTime", ytplayer.getCurrentTime()); 
      updateHTML("bytesTotal", ytplayer.getVideoBytesTotal()); 
      updateHTML("startBytes", ytplayer.getVideoStartBytes()); 
      updateHTML("bytesLoaded", ytplayer.getVideoBytesLoaded()); 
      updateHTML("volume", ytplayer.getVolume()); 
     } 
     } 

     // Allow the user to set the volume from 0-100 
     function setVideoVolume() { 
     var volume = parseInt(document.getElementById("volumeSetting").value); 
     if(isNaN(volume) || volume < 0 || volume > 100) { 
      alert("Please enter a valid volume between 0 and 100."); 
     } 
     else if(ytplayer){ 
      ytplayer.setVolume(volume); 
     } 
     } 

     function playVideo() { 
     if (ytplayer) { 
      ytplayer.playVideo(); 
     } 
     } 

     function pauseVideo() { 
     if (ytplayer) { 
      ytplayer.pauseVideo(); 
     } 
     } 

     function muteVideo() { 
     if(ytplayer) { 
      ytplayer.mute(); 
     } 
     } 

     function unMuteVideo() { 
     if(ytplayer) { 
      ytplayer.unMute(); 
     } 
     } 


     // This function is automatically called by the player once it loads 
     function onYouTubePlayerReady(playerId) { 
     ytplayer = document.getElementById("ytPlayer"); 
     // This causes the updatePlayerInfo function to be called every 250ms to 
     // get fresh data from the player 
     setInterval(updatePlayerInfo, 250); 
     updatePlayerInfo(); 
     ytplayer.addEventListener("onStateChange", "onPlayerStateChange"); 
     ytplayer.addEventListener("onError", "onPlayerError"); 
     //Load an initial video into the player 
     ytplayer.cueVideoById("ylLzyHk54Z0"); 
     } 

     // The "main method" of this sample. Called when someone clicks "Run". 
     function loadPlayer() { 
     // Lets Flash from another domain call JavaScript 
     var params = { allowScriptAccess: "always" }; 
     // The element id of the Flash embed 
     var atts = { id: "ytPlayer" }; 
     // All of the magic handled by SWFObject (http://code.google.com/p/swfobject/) 
     swfobject.embedSWF("http://www.youtube.com/apiplayer?" + 
          "version=3&enablejsapi=1&playerapiid=player1", 
          "videoDiv", "480", "295", "9", null, null, params, atts); 
     } 
     function _run() { 
     loadPlayer(); 
     } 
     google.setOnLoadCallback(_run); 
    </script> 
    </head> 
    <body style="font-family: Arial;border: 0 none;"> 
    <table> 
    <tr> 
    <td><div id="videoDiv">Loading...</div></td> 
    <td valign="top"> 
     <div id="videoInfo"> 
     <p>Player state: <span id="playerState">--</span></p> 
     <p>Current Time: <span id="videoCurrentTime">--:--</span> | Duration: <span id="videoDuration">--:--</span></p> 
     <p>Bytes Total: <span id="bytesTotal">--</span> | Start Bytes: <span id="startBytes">--</span> | Bytes Loaded: <span id="bytesLoaded">--</span></p> 
     <p>Controls: <a href="javascript:void(0);" onclick="playVideo();">Play</a> | <a href="javascript:void(0);" onclick="pauseVideo();">Pause</a> | <a href="javascript:void(0);" onclick="muteVideo();">Mute</a> | <a href="javascript:void(0);" onclick="unMuteVideo();">Unmute</a></p> 
     <p><input id="volumeSetting" type="text" size="3" />&nbsp;<a href="javascript:void(0)" onclick="setVideoVolume();">&lt;- Set Volume</a> | Volume: <span id="volume">--</span></p> 
     </div> 
    </td></tr> 
    </table> 
    </body> 
</html> 
​ 

答えて

-1

今日(2-28-2012)現在、iOSデバイスのブラウザでビデオをインラインで再生する方法はありません。 iOSビデオプレーヤーまたはYouTubeアプリでビデオを再生するリンクのみをプロビジョニングできます。 Youtube HTML5プレーヤーがこれを行います。フラッシュをサポートしていないHTML5対応デバイスでは、HTML5タグが配信されます。

3月7日はiOS向けの大きな発表です。多分これは変更されるかもしれません。しかし、これはこれがiOSデバイスで操作するのが長年の方法なので、それは期待できません。

EDIT - これを行う方法は次のとおりです。

この機能をiOSに使用するには、新しいHTML5 YouTubeプレーヤーを使用します。 YouTube APIのブログに記載されている手順とコード: http://apiblog.youtube.com/2010/07/new-way-to-embed-youtube-videos.html

+0

上記のコードを作成するには、iOSアプリを使用する方法がありますか?今はちょうど何も表示されません...アプリは何よりも優れています... – dingerkingh

+0

iosで動作するこのようなプレーヤーのためのJavaScript APIがありますか?たとえば、埋め込みプレーヤーで再生しているビデオを再生、一時停止、スキップしますか? IOSの – wilsonpage

+0

あなたはYouTubeのアイコンをクリックし、それはYouTubeのアプリでビデオを起動します。優れた実装ではありませんが、GoogleとAppleでそれを活用できます。ただし、再生ボタンをクリックしないでください。再生ボタンが破損するためです。自分のブラウザがインライン動画を再生できない理由をappleに尋ねる –

関連する問題