2013-04-17 7 views

答えて

8

ミラーAPIの公開ロードマップはありません。開発者プレビューの動機の一部は、それを理解することです。

まず、明確にするために、その動画に表示されるストリーミングはGoogle+ハングアウトです。これはGlassに組み込まれている機能です。

更新:Glassでビデオストリーミングがサポートされるようになりました。完全なドキュメントhereを見つけることができます。

は、ビデオストリームは、このような部品の一つとして動画のURLを持つマルチパートPOSTを作る追加するには:

POST /upload/mirror/v1/timeline HTTP/1.1 
Host: www.googleapis.com 
Authorization: Bearer {auth token} 
Content-Type: multipart/related; boundary="mymultipartboundary" 
Content-Length: {length} 

--mymultipartboundary 
Content-Type: application/json; charset=UTF-8 

{ "text": "Skateboarding kittens" } 
--mymultipartboundary 
Content-Type: video/vnd.google-glass.stream-url 

http://example.com/path/to/kittens.mp4 
--mymultipartboundary-- 
+1

素晴らしいことは問題のトラッカーで行います。 Googleハングアウト中にカードをプッシュする機能を追加することは素晴らしいことだと思います。 – djscoutmaster

+0

ユーザーの動画/ vnd.google-glass.stream-urlを再生しようとすると、コンテンツが再生されません。最初のフレームが表示され、読み込みアニメーションは永遠に実行されます。 これが実装されたドキュメントにいくつかのコードサンプルが追加されています。 – PrplRugby

+0

@PrplRugby - トラブルシューティングに役立つ詳細が必要です。新しい質問を作成し、コードとJSONのペイロードを含めてもいいですか? – mimming

1

Youtubeビデオストリーミングが可能です。私はC#.netで "YoutubeExtractor"名前空間を使ってやっています。あなたのチューブビデオからビデオ(.mp4)URLを解決してストリームします。ここにコードがあります。それは私のためにうまくいった。あなたが共有をクリックした後に利用可能なあなたのチューブのリンクを取得するURLをコピーするとき

private static String youtubevideoStream(MainController controller) 
    { 

     string link = "http://youtu.be/9uYKISlL7Vg"; 
     IEnumerable<VideoInfo> videoInfos = DownloadUrlResolver.GetDownloadUrls(link); 
     VideoInfo video = videoInfos.First(info => info.VideoType == VideoType.Mp4 && info.Resolution == 360); 
     String vLink = video.DownloadUrl; 


     TimelineItem videocard= new TimelineItem() 
     { 

      Text = "Menu Card", 
      BundleId = "666", 
      Notification = new NotificationConfig() { Level = "DEFAULT" }, 
      MenuItems = new List<MenuItem>() 
            { 
             new MenuItem() {Action = "DELETE"}, 
            } 

     }; 

     String mediaLink = vLink; 

     if (!String.IsNullOrEmpty(mediaLink)) 
     { 
      Stream stream = null; 
      if (mediaLink.StartsWith("/")) 
      { 
       stream = new StreamReader(controller.Server.MapPath(mediaLink)).BaseStream; 
      } 
      else 
      { 
       HttpWebRequest request = WebRequest.Create(mediaLink) as HttpWebRequest; 

       request.UseDefaultCredentials = false; 


       HttpWebResponse response = request.GetResponse() as HttpWebResponse; 

       byte[] b = null; 
       using (Stream streamFromWeb = response.GetResponseStream()) 
       using (MemoryStream ms = new MemoryStream()) 
       { 
        int count = 0; 
        do 
        { 
         byte[] buf = new byte[1024]; 
         count = streamFromWeb.Read(buf, 0, 1024); 
         ms.Write(buf, 0, count); 
        } while (streamFromWeb.CanRead && count > 0); 
        b = ms.ToArray(); 

        stream = new MemoryStream(b); 
       } 
      } 
      controller.Service.Timeline.Insert(videocard, stream, "video/mp4").Upload(); 
     } 
     else 
     { 
      controller.Service.Timeline.Insert(videocard).Fetch(); 
     }