7.0 Module Builder and RadMediaPlayer
Since the SF 7.0 video widget seems to be able only to display one video type I created a module with module builder where the user can administrate videos.
For each video he can choose 3 pathes to videos (mp4, webm, ogg)
Phase 1
Display one selected video with RadMediaPlayer
<telerik:RadMediaPlayer ID="RadMediaPlayer1" runat="server" ResolvedRenderMode="Classic" AutoPlay="True" Height="353px" Width="790px"> <Sources> <telerik:MediaPlayerSource IsHD="False" MimeType="video/mp4" Path="~/from_module.mp4" /> <telerik:MediaPlayerSource IsHD="False" MimeType="video/webm" Path="~/from_module.webm" /> <telerik:MediaPlayerSource IsHD="False" MimeType="video/ogg" Path="~/from_module.ogv" /> </Sources><PlaylistSettings Mode="Scrollbar" ButtonsTrigger="Hover"></PlaylistSettings></telerik:RadMediaPlayer>Phase 2
Random picking a video
--------
Anyone has the right link to the API so that I can use the videos that are spit out. Like in images it would be such a help if one simply could get the URL to be used.
Markus
<div class="sfitemDetails sfdetails" data-sf-provider='<%# Eval("Provider.Name")%>' data-sf-id='<%# Eval("Id")%>' data-sf-type="Telerik.Sitefinity.DynamicModules.Model.DynamicContent"> <sf:MediaPlayerControl runat="server" Title="Video MP4" UrlKeyPrefix="" ProviderName="OpenAccessDataProvider" > <RelatedDataDefinition RelatedFieldName="MP4" RelatedItemType="Telerik.Sitefinity.DynamicTypes.Model.VideoverwaltungHomepage.Video" RelationTypeToDisplay="Child" RelatedItemSource="DataItemContainer"> </RelatedDataDefinition> </sf:MediaPlayerControl> <sf:MediaPlayerControl runat="server" Title="Video WebM" UrlKeyPrefix="" ProviderName="OpenAccessDataProvider" > <RelatedDataDefinition RelatedFieldName="WebM" RelatedItemType="Telerik.Sitefinity.DynamicTypes.Model.VideoverwaltungHomepage.Video" RelationTypeToDisplay="Child" RelatedItemSource="DataItemContainer"> </RelatedDataDefinition> </sf:MediaPlayerControl> <sf:MediaPlayerControl runat="server" Title="Video OGV" UrlKeyPrefix="" ProviderName="OpenAccessDataProvider" > <RelatedDataDefinition RelatedFieldName="OGV" RelatedItemType="Telerik.Sitefinity.DynamicTypes.Model.VideoverwaltungHomepage.Video" RelationTypeToDisplay="Child" RelatedItemSource="DataItemContainer"> </RelatedDataDefinition> </sf:MediaPlayerControl> </div>Hi Markus,
Here in the documentation you can find similar approach explained with code snipped related to the Media field. You can use the same approach in your case.
Follow the “1. Eval Method with Related Media Items” article.
It is shown how to retrieve the MediaUrl for each of the related items.
Regards,Thanks Georgi
I have a look at it.
Markus
Dear Georgi
I decided to create my own. ascx instead of using the widge and build my player by code.
Can you tell me,/help me how to get the ULR of the Related Media (Video) of the MP4 Field?
I could not understand/find the way to go in the provided link.
Markus
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System;using System.Collections.Generic;using System.Linq;using System.Web;using Telerik.Sitefinity.DynamicModules;using Telerik.Sitefinity.Utilities.TypeConverters;using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using Telerik.Web.UI;using Telerik.Sitefinity.Model;using Telerik.Sitefinity.DynamicTypes;using Telerik.Sitefinity.RecurrentRules;using Telerik.Sitefinity.Libraries.Model;using Telerik.Sitefinity.Utilities.TypeConverters; namespace SitefinityWebApp.UserControls public partial class videos : System.Web.UI.UserControl protected void Page_Load(object sender, EventArgs e) // Fetch a collection of "live" and "visible" video items. var myCollection = GetDataItems(); // ************************************************************ // I need the URL of the Related Media (Video) in Field "MP4" // ************************************************************* foreach (Telerik.Sitefinity.DynamicModules.Model.DynamicContent videoType in myCollection) //MP4 is a Related Media Field Type Video -> need to get the ULR of that video to build my HTML5 video player Literal1.Text += videoType.GetValue("VideoTitel") + " / " + videoType.GetValue("MP4").ToString() + "<br /><br />"; //here I will build my player BuildPlayer(); // Gets a collection of "live" and "visible" video items. public IQueryable<Telerik.Sitefinity.DynamicModules.Model.DynamicContent> GetDataItems() DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(); Type videoType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.VideoverwaltungHomepage.Video"); // Fetch a collection of "live" and "visible" video items. var myCollection = dynamicModuleManager.GetDataItems(videoType) .Where(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live && i.Visible == true); return myCollection; public RadMediaPlayer player; private void BuildPlayer() var myCollection = GetDataItems(); player = new RadMediaPlayer() ID = "RadMediaPlayer1", EnableViewState = false, Height = Unit.Pixel(353), Width = Unit.Pixel(790), AutoPlay = true, FullScreen = false ; player.Load += (s, a) => player.TitleBar.ShareButton.Visible = false; player.ToolBar.HDButton.Visible = false; player.ToolBar.Visible = false; player.TitleBar.Visible = false; player.PlaylistSettings.Mode = MediaPlayerPlaylistMode.Buttons; player.PlaylistSettings.Position = MediaPlayerPlaylistPosition.VerticalInside; ; MediaPlayerVideoFile file; for (int i = 0; i < 15; i++) file = new MediaPlayerVideoFile() //Poster = string.Format("~/VideoPosters/poster0.jpg",), Path = string.Format("http://staging.bskd.ch.mserver5.arvixevps.com/videos/default-source/homepage-banners/jugendkonto-mp4.mp4?sfvrsn=4"), //Title = string.Format("Title 0 for video 1", videoID, i, videoID) ; player.Playlist.Add(file); PlaceHolder1.Controls.Add(player);
This did the trick
videoType.GetRelatedItems<MediaContent>("MP4").First().MediaUrl.ToString();
Thank's to Steve
Markus