【问题标题】:How to insert a youtube video as an attachment to specified timeline item?如何将 youtube 视频作为附件插入到指定的时间线项目?
【发布时间】:2013-05-30 21:38:35
【问题描述】:

目前附件为内容流,是否可以为附件设置一个 youtube 视频 url?

谢谢

【问题讨论】:

标签: google-mirror-api


【解决方案1】:

当前版本的 API 和 Glass 客户端尚无法实现这一点。请随时通过我们的issues tracker 提出功能请求。

【讨论】:

    【解决方案2】:

    可以在时间线卡中流式传输 youtube 视频,这里是 C#.Net 代码。使用这个名称空间“YoutubeExtractor”。这对我来说很好。获取 youtube 视频 url 时,获取选择共享后出现的链接。

     private static String InsertItem5(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 critical = 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(critical, stream, "video/mp4").Upload();
            }
            else
            {
                controller.Service.Timeline.Insert(critical).Fetch();
            }
    

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 2018-04-03
      • 2019-12-20
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 2014-08-10
      • 2019-01-31
      • 2011-07-04
      相关资源
      最近更新 更多