better url handling
This commit is contained in:
parent
382f2e34d4
commit
06ffaa02df
1 changed files with 10 additions and 4 deletions
|
@ -65,7 +65,7 @@ export default class Channel extends Vue {
|
|||
|
||||
@Watch("url")
|
||||
private onUrlChange() {
|
||||
if (this.url !== undefined) {
|
||||
if (this.url !== undefined && this.url.length > 0) {
|
||||
if (this.youtubePlayer === undefined) {
|
||||
this.youtubePlayer = YouTubePlayerFactory(this.$refs.ytpl as HTMLDivElement, {
|
||||
playerVars: {"autoplay": 0},
|
||||
|
@ -81,9 +81,8 @@ export default class Channel extends Vue {
|
|||
}
|
||||
});
|
||||
}
|
||||
const videoIdMatch = this.url.match(/v=([\w_\-]+)/);
|
||||
if (videoIdMatch !== null && videoIdMatch.length == 2) {
|
||||
const videoId = videoIdMatch[1];
|
||||
const videoId = Channel.extractYoutubeId(this.url);
|
||||
if (videoId !== undefined) {
|
||||
this.state = ChannelState.LOADING;
|
||||
console.log(`Loading YouTube video "${videoId}"`);
|
||||
this.youtubePlayer.loadVideoById(videoId);
|
||||
|
@ -102,6 +101,13 @@ export default class Channel extends Vue {
|
|||
}
|
||||
}
|
||||
|
||||
private static extractYoutubeId(url: string): string | undefined {
|
||||
const videoIdMatch = url.match(/(v=|youtu\.be\/)([^&]+)/);
|
||||
if (videoIdMatch !== null && videoIdMatch.length == 3) {
|
||||
return videoIdMatch[2];
|
||||
}
|
||||
}
|
||||
|
||||
@Watch("volume")
|
||||
private onVolumeChange() {
|
||||
if (this.youtubePlayer) {
|
||||
|
|
Loading…
Reference in a new issue