2013-04-17 8 views
6

Google ग्लास दर्पण API पर वीडियो के लिए रोडमैप क्या है? क्या एपीआई ग्लास डेमो वीडियो http://www.youtube.com/watch?v=v1uyQZNg2vE में दिखाए गए डिवाइस पर या उससे वीडियो स्ट्रीम करने की अनुमति देगा?Google मिरर एपीआई वीडियो

उत्तर

8

मिरर एपीआई के लिए कोई प्रकाशित रोडमैप नहीं है। हमारे डेवलपर पूर्वावलोकन के लिए प्रेरणा का हिस्सा यह समझना है।

सबसे पहले, स्पष्ट करने के लिए, उस वीडियो में दिखाया गया स्ट्रीमिंग एक Google+ Hangout है। यह एक विशेषता है जो ग्लास में बनाई गई है।

अद्यतन: ग्लास अब वीडियो स्ट्रीमिंग का समर्थन करता है। आप पूर्ण दस्तावेज़ here पा सकते हैं।

एक वीडियो स्ट्रीम भागों में से एक है, इस तरह के रूप में वीडियो के लिए यूआरएल के साथ एक बहुखण्डीय पोस्ट कर जोड़ने के लिए:

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 hangout के दौरान कार्ड को धक्का देने की क्षमता बढ़ाना बहुत अच्छा होगा। – djscoutmaster

+0

उपयोगकर्ता वीडियो/vnd.google-glass.stream-url का प्रयास करते समय सामग्री कभी नहीं खेलती है। पहला फ्रेम प्रदर्शित होता है, और लोडिंग एनीमेशन हमेशा के लिए चलता है। कोई भी मौका हम इसे लागू करने के दस्तावेज़ों में जोड़े गए कुछ कोड नमूने देख सकते हैं? – PrplRugby

+0

@PrplRugby - मुझे समस्या निवारण में आपकी सहायता के लिए अधिक जानकारी चाहिए। क्या आप एक नया प्रश्न बनाने और अपने कोड और जेएसओएन पेलोड सहित समझाएंगे? – mimming

1

यूट्यूब वीडियो स्ट्रीमिंग संभव है। मैंने इसे "YoutubeExtractor" नामस्थान का उपयोग कर सी # नेट में किया है। ट्यूब ट्यूब से वीडियो (.mp4) यूआरएल को हल करें और इसे स्ट्रीम करें। कोड यहाँ है। इसने मेरे लिए अच्छा काम किया। यूआरएल की प्रतिलिपि करते समय आपको ट्यूब ट्यूब मिल जाता है जो आपके द्वारा उपलब्ध

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(); 
     } 
संबंधित मुद्दे