本文整理汇总了C#中System.VideoInfo类的典型用法代码示例。如果您正苦于以下问题:C# VideoInfo类的具体用法?C# VideoInfo怎么用?C# VideoInfo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
VideoInfo类属于System命名空间,在下文中一共展示了VideoInfo类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DiscoverDynamicCategories
public override int DiscoverDynamicCategories()
{
if (Settings.Categories == null) Settings.Categories = new BindingList<Category>();
cc = new CookieContainer();
string data = GetWebData(@"https://www.filmon.com/tv/live", userAgent: userAgent, cookies: cc);
string jsondata = @"{""result"":" + Helpers.StringUtils.GetSubString(data, "var groups =", @"if(!$.isArray").Trim().TrimEnd(';') + "}";
JToken jt = JObject.Parse(jsondata) as JToken;
foreach (JToken jCat in jt["result"] as JArray)
{
RssLink cat = new RssLink();
cat.Name = jCat.Value<string>("title");
cat.Description = jCat.Value<string>("description");
cat.Thumb = jCat.Value<string>("logo_uri");
Settings.Categories.Add(cat);
JArray channels = jCat["channels"] as JArray;
List<VideoInfo> videos = new List<VideoInfo>();
foreach (JToken channel in channels)
{
VideoInfo video = new VideoInfo();
video.Thumb = channel.Value<string>("logo");
video.Description = channel.Value<string>("description");
video.Title = channel.Value<string>("title");
video.VideoUrl = @"https://www.filmon.com/ajax/getChannelInfo";
video.Other = String.Format(@"channel_id={0}&quality=low", channel.Value<string>("id"));
videos.Add(video);
}
cat.Other = videos;
}
Settings.DynamicCategoriesDiscovered = true;
return Settings.Categories.Count;
}
示例2: GetVideoUrl
public override string GetVideoUrl(VideoInfo video)
{
CookieContainer newCc = new CookieContainer();
foreach (Cookie c in cc.GetCookies(new Uri(@"https://www.filmon.com/")))
{
newCc.Add(c);
}
NameValueCollection headers = new NameValueCollection();
headers.Add("Accept", "*/*");
headers.Add("User-Agent", userAgent);
headers.Add("X-Requested-With", "XMLHttpRequest");
string webdata = GetWebData(video.VideoUrl, (string)video.Other, newCc, headers: headers);
JToken jt = JObject.Parse(webdata) as JToken;
JArray streams = jt.Value<JArray>("streams");
video.PlaybackOptions = new Dictionary<string, string>();
foreach (JToken stream in streams)
{
string serverUrl = stream.Value<string>("url");
RtmpUrl res = new RtmpUrl(serverUrl);
res.Live = true;
res.PlayPath = stream.Value<string>("name");
int p = serverUrl.IndexOf("live/?id");
res.App = serverUrl.Substring(p);
video.PlaybackOptions.Add(stream.Value<string>("quality"), res.ToString());
}
return video.PlaybackOptions.First().Value;
}
示例3: GetVideos
public override List<VideoInfo> GetVideos(Category category)
{
List<VideoInfo> videos = new List<VideoInfo>();
String sessionIdData = GetWebData("https://orangetv.orange.es/atv/api/anonymous?appId=es.orange.pc&appVersion=1.0");
String sessionId = (String)JObject.Parse(sessionIdData).SelectToken("sessionId");
NameValueCollection headers = new NameValueCollection();
headers.Add("Accept", "*/*");
headers.Add("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.3");
headers.Add("Accept-Encoding", "gzip,deflate,sdch");
headers.Add("Accept-Language", "es-ES,es;q=0.8");
headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1");
headers.Add("X-Aspiro-TV-Session", sessionId);
String canalesData = GetWebData("https://orangetv.orange.es/atv/api/epg?from=now&offset=-2h&duration=16h&view=epg&byTags=SmoothStreaming%40sourceType", headers: headers);
JArray canalesJson = JArray.Parse(canalesData);
for (int i = 0; i < canalesJson.Count; i++)
{
JToken canal = canalesJson[i];
VideoInfo video = new VideoInfo();
video.Title = (String)canal["title"];
video.Thumb = (String)canal["images"]["LOGO"];
video.VideoUrl = "https://orangetv.orange.es/#!channel/" + (String)canal["id"] + "/play";
videos.Add(video);
}
return videos;
}
示例4: GetVideoUrl
public override string GetVideoUrl(VideoInfo video)
{
var data = GetWebData(video.VideoUrl);
var videoUrl = "";
var baseDownloadUrl = "http://www.gametrailers.com/feeds/video_download/";
if (data != null && data.Length > 0)
{
if (regEx_PlaylistUrl != null)
{
try
{
var m = regEx_PlaylistUrl.Match(data);
while (m.Success)
{
var contentid = HttpUtility.HtmlDecode(m.Groups["contentid"].Value);
var token = HttpUtility.HtmlDecode(m.Groups["token"].Value);
var finalDownloadUrl = baseDownloadUrl + contentid + "/" + token;
var dataJson = GetWebData(finalDownloadUrl);
var o = JObject.Parse(dataJson);
videoUrl = o["url"].ToString().Replace("\"", "");
break;
}
}
catch (Exception eVideoUrlRetrieval)
{
Log.Debug("Error while retrieving Video Url: " + eVideoUrlRetrieval);
}
return videoUrl;
}
}
return null;
}
示例5: GetVideoUrl
//protected override CookieContainer GetCookie()
//{
// if (OnlyGerman) return base.GetCookie();
// else return null;
//}
public override string GetVideoUrl(VideoInfo video)
{
string result = base.GetVideoUrl(video);
if (video.PlaybackOptions == null && !string.IsNullOrEmpty(result))
result = Movie2KFilmVideoInfo.getPlaybackUrl(result, this);
return result;
}
示例6: VideoViewModel
public VideoViewModel(VideoInfo videoInfo, Category category, string siteName, string utilName, bool isDetailsVideo)
: base(Consts.KEY_NAME, isDetailsVideo ? ((DetailVideoInfo)videoInfo).Title2 : videoInfo.Title)
{
VideoInfo = videoInfo;
Category = category;
SiteName = siteName;
SiteUtilName = utilName;
IsDetailsVideo = isDetailsVideo;
_titleProperty = new WProperty(typeof(string), videoInfo.Title);
_title2Property = new WProperty(typeof(string), isDetailsVideo ? ((DetailVideoInfo)videoInfo).Title2 : string.Empty);
_descriptionProperty = new WProperty(typeof(string), videoInfo.Description);
_lengthProperty = new WProperty(typeof(string), videoInfo.Length);
_airdateProperty = new WProperty(typeof(string), videoInfo.Airdate);
_thumbnailImageProperty = new WProperty(typeof(string), videoInfo.ThumbnailImage);
_contextMenuEntriesProperty = new WProperty(typeof(ItemsList), null);
eventDelegator = OnlineVideosAppDomain.Domain.CreateInstanceAndUnwrap(typeof(PropertyChangedDelegator).Assembly.FullName, typeof(PropertyChangedDelegator).FullName) as PropertyChangedDelegator;
eventDelegator.InvokeTarget = new PropertyChangedExecutor()
{
InvokeHandler = (s, e) =>
{
if (e.PropertyName == "ThumbnailImage") ThumbnailImage = (s as VideoInfo).ThumbnailImage;
else if (e.PropertyName == "Length") Length = (s as VideoInfo).Length;
}
};
VideoInfo.PropertyChanged += eventDelegator.EventDelegate;
}
示例7: GetMultipleVideoUrls
public override List<string> GetMultipleVideoUrls(VideoInfo video, bool inPlaylist = false)
{
string url = GetVideoUrl(video);
if (inPlaylist)
video.PlaybackOptions.Clear();
return new List<string>() { url };
}
示例8: GetVideos
public override List<VideoInfo> GetVideos(Category category)
{
List<VideoInfo> listVideos = new List<VideoInfo>();
string url = (category as RssLink).Url;
string webData = GetWebData((category as RssLink).Url);
Regex r = new Regex(@"href=""(?<url>[^""]*)""></a><span\sclass=""play_video""></span>\s*<img\ssrc=""(?<thumb>[^""]*)""\swidth=""120""\sheight=""90""\salt=""""\s/>\s*</div>\s*<p>\s*<strong>(?<title>[^<]*)</strong>\s*<span>(?<description>[^<]*)<br/>(?<description2>[^<]*)</span>\s*</p>",
RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.Multiline | RegexOptions.Singleline | RegexOptions.IgnorePatternWhitespace | RegexOptions.ExplicitCapture);
Match m = r.Match(webData);
while (m.Success)
{
VideoInfo video = new VideoInfo()
{
VideoUrl = m.Groups["url"].Value,
Title = m.Groups["title"].Value,
Thumb = m.Groups["thumb"].Value,
Description = m.Groups["description"].Value.Trim() + "\n" + m.Groups["description2"].Value.Trim()
};
listVideos.Add(video);
m = m.NextMatch();
}
return listVideos;
}
示例9: GetVideoUrl
public override string GetVideoUrl(VideoInfo video)
{
string res = base.GetVideoUrl(video);
if (video.PlaybackOptions != null && video.PlaybackOptions.Count > 1)
return video.PlaybackOptions.Last().Value;
return res;
}
示例10: GetVideoUrl
public override string GetVideoUrl(VideoInfo video)
{
string webData = GetWebData(video.VideoUrl);
Match m = regEx_FileUrl.Match(webData);
if (m.Success)
{
string newUrl = m.Groups["m0"].Value + "?authenticity_token=" + HttpUtility.UrlEncode(m.Groups["m1"].Value);
webData = GetWebData(newUrl);
m = Regex.Match(webData, @"url:\s\\""(?<url>[^\\]*)\\[^{]*{[^{]*{\\n\s*url:\s\\""[^""]*"",\\n\s*netConnectionUrl:\s\\""(?<netConnectionUrl>[^\\]*)\\""", defaultRegexOptions);
if (m.Success)
{
string ncUrl = m.Groups["netConnectionUrl"].Value;
string[] parts = ncUrl.Split('/');
string playPath = parts[4];
bool live = webData.Contains("live = true");
if (live)
{
int p = playPath.IndexOf("stream");
if (p >= 0) playPath = playPath.Insert(p, "/");
}
RtmpUrl result = new RtmpUrl(ncUrl)
{
PlayPath = m.Groups["url"].Value,
App = String.Format("{0}/{1}{2}", parts[3], parts[4], m.Groups["m1"].Value),
Live = live
};
return result.ToString();
}
}
return String.Empty;
}
示例11: GetVideoUrl
public override String GetVideoUrl(VideoInfo video)
{
string data = GetWebData(video.VideoUrl);
Match m = regEx_URL.Match(data);
if (m.Success)
{
ut_section_id = m.Groups["ut_section_id"].Value;
media_id = m.Groups["media_id"].Value;
site_id = m.Groups["site_id"].Value;
section_id = m.Groups["section_id"].Value;
}
data = GetWebData("http://dnevnik.hr/bin/player/?mod=serve&site_id=" + site_id + "&media_id=" + media_id +
"&userad_id=§ion_id=" + section_id);
m = regEx_URLFile.Match(data);
if (m.Success)
{
FileUrl = m.Groups["FileUrl"].Value;
FileServer = m.Groups["FileServer"].Value;
FileType = m.Groups["FileType"].Value;
if (string.IsNullOrEmpty(FileType))
FileType = "flv";
data = "http://vid" + FileServer + ".dnevnik.hr/" + FileUrl + "-2" + "." + FileType;
}
return data;
}
示例12: GetVideoUrl
public override String GetVideoUrl(VideoInfo video)
{
video.PlaybackOptions = new Dictionary<string, string>();
var html = GetWebData<HtmlDocument>(video.VideoUrl);
var itemprop = html.DocumentNode.Descendants("span").FirstOrDefault(s => s.GetAttributeValue("itemprop", "") == "contentUrl");
return itemprop.GetAttributeValue("content", "");
}
示例13: GetVideos
public override List<VideoInfo> GetVideos(Category category)
{
List<VideoInfo> vids = new List<VideoInfo>();
string channelReg = @"<strong>(?<title>.*?)\s-(?<links>.*?)</strong><br />";
string urlReg = @"href=""(?<link>sop://[^""]*)""";
foreach (Match channelMatch in new Regex(channelReg, RegexOptions.Singleline).Matches(category.Other as string))
{
int x = 1;
string title = channelMatch.Groups["title"].Value;
foreach (Match link in new Regex(urlReg).Matches(channelMatch.Groups["links"].Value))
{
VideoInfo vid = new VideoInfo();
vid.Title = title;
if (x > 1)
vid.Title += string.Format(" ({0})", x);
vid.VideoUrl = link.Groups["link"].Value;
vids.Add(vid);
x++;
}
}
return vids;
}
示例14: Video
/// <summary>
///
/// </summary>
/// <param name="src">视频源文件</param>
public Video(string src)
{
if (!System.IO.File.Exists(src))
throw new Exception(src + " Not Found.");
_Source = src;
Info = MediaHelper.GetVideoInfo(src);
}
示例15: GetVideos
public override List<VideoInfo> GetVideos(Category category)
{
JArray videos = category.Other as JArray;
List<VideoInfo> res = new List<VideoInfo>();
foreach (JToken videoId in videos)
{
VideoInfo video = new VideoInfo();
string id = videoId.Value<string>();
if (contentList.ContainsKey(id))
{
JToken vid = contentList[id];
video.Title = vid["title"].Value<string>();
JToken descr = vid["description"];
if (descr != null)
video.Description = descr.Value<string>();
JToken thumb = vid["thumbnailUrl"];
if (thumb != null)
video.Thumb = thumb.Value<string>();
video.Length = TimeSpan.FromSeconds(vid["length"].Value<int>() / 1000).ToString();
video.Airdate = epoch.AddSeconds(vid["publishedDate"].Value<double>() / 1000).ToString();
video.VideoUrl = baseUrl + "channels/" + category.Name + "/" + id;
video.Other = id;
res.Add(video);
}
}
return res;
}