Satt igår med ett projekt där kunden hade följande önskemål:
- HD-upplösning skall vara förvalt
- Dölja related videos i slutet av klippet
- Ha möjlighet att spela upp Youtube playlists
Vi använder Youtubes IFrameAPI i vårat projekt.
MovieBlock.cs
public class MovieBlock : BaseBlockData
{
[CultureSpecific]
[Required]
[Display(
Name = "YouTube ID",
Order = 10
)]
public virtual string YoutubeId { get; set; }
[CultureSpecific]
[Display(
Name = "Youtube Playlist Id",
Description = "Insert an link to a Youtube-playlist",
Order = 20
)]
public virtual string YoutubePlaylistId { get; set; }
[CultureSpecific]
[Display(
Name = "Slate Image",
Description = "Insert an optional slate image to appear over video (W: 940px / H: 557px)",
Order = 30
)]
public virtual MediaReference SlateImage { get; set; }
}
Kod i Youtubes exempel.
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
Ta bort related videos
För att sätta olika flaggor använder Youtube en egenskap vid namn playerVars. För att se de olika alternativen se här.
Disable related videos = rel : 0
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
playerVars: 'rel' : '0'
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
HD-upplösning som standard
vq : highres
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
playerVars: 'rel' : '0', 'vq' : 'highres'
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
Möjlighet att spela playlists
list : Youtubelistans ID
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
playerVars: 'rel' : '0', 'vq' : 'highres', 'list' : 'ajkfsnsakjfnajskf14124'
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});
Slutgiltlig kod
Kollar om publiceraren har valt att använda sig utav en playlist eller inte.
var player;
function onYouTubeIframeAPIReady() {
var playerVars;
if ($(this).attr('data-playlist')) {
playerVars = {
'rel': '0',
'vq': 'highres',
'list': $(this).attr('data-playlist')
}
} else {
playerVars = {
'rel': '0',
'vq': 'highres'
}
}
player = new YT.Player('player', {
height: '390',
width: '640',
videoId: 'M7lc1UVf-VE',
playerVars: playerVars
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}
});