コード例 #1
0
/**
 * DNA Component
 * Copyright (c) 2016 Chia Lab s.r.l.
 * All rights reserved.
 *
 * @name audio-media-player
 * @author Chialab s.r.l. <*****@*****.**> (http://www.chialab.com)
 * @description A set of components to handle media sources.
 */
import { register } from 'dna/components';
import { AudioVideoBaseComponent } from '../common/audio-video-base.js';
import css from './audio.css';

export class AudioMediaPlayerComponent extends AudioVideoBaseComponent {
    static get css() {
        return css;
    }
    createMedia() {
        return new Audio();
    }
    _validateMedia(media) {
        return (media instanceof Audio || media.tagName === 'AUDIO');
    }
}

export const AudioMediaPlayer = register('audio-media-player', {
    prototype: AudioMediaPlayerComponent,
});
コード例 #2
0
ファイル: video.js プロジェクト: Chialab/media-players-js
        }
    }
    bindPlayer(player) {
        player = player || this.getPlayer() || this.setPlayer();
        if (!player._containsMedia(this) && this.parentNode && !this.isAttached()) {
            if (this.nextElementSibling) {
                this.parentNode.insertBefore(player, this.nextElementSibling);
            } else {
                this.parentNode.appendChild(player);
            }
        }
        player.media = this;
    }
    detachedCallback() {
        let player = this.getPlayer();
        if (!player.creating && !player.attachingMedia) {
            if (player && player.player && !player._containsMedia(this)) {
                if (player.parentNode) {
                    player.parentNode.removeChild(player);
                }
                this.setPlayer();
            }
        }
    }
}

export const DNAVideoPlayer = register('dna-video-player', {
    prototype: VideoMediaPlayerLinkComponent,
    extends: 'video',
});
コード例 #3
0
ファイル: audio.js プロジェクト: Chialab/media-players-js
        }
    }
    bindPlayer(player) {
        player = player || this.getPlayer() || this.setPlayer();
        if (!player._containsMedia(this)) {
            if (this.nextElementSibling) {
                this.parentNode.insertBefore(player, this.nextElementSibling);
            } else {
                this.parentNode.appendChild(player);
            }
        }
        player.media = this;
    }
    detachedCallback() {
        let player = this.getPlayer();
        if (!player.creating && !player.attachingMedia) {
            if (player && player.player && !player._containsMedia(this)) {
                if (player.parentNode) {
                    player.parentNode.removeChild(player);
                }
                this.setPlayer();
            }
        }
    }
}

export const DNAAudioPlayer = register('dna-audio-player', {
    prototype: AudioMediaPlayerLinkComponent,
    extends: 'audio',
});
コード例 #4
0
ファイル: backdrop.js プロジェクト: Chialab/sidenav-js
            if (body.firstElementChild) {
                body.insertBefore(this, body.firstElementChild);
            } else {
                body.appendChild(this);
            }
        }
        this.classList.remove(this.dropHiddenClass);
    }

    hide() {
        this.__hidingAnimation = UI.animationEnd(this, () => {
            if (this.parentNode) {
                this.parentNode.removeChild(this);
            }
        });
        this.classList.add(this.dropHiddenClass);
    }

    onTap(callback) {
        if (callback) {
            Gestures.addEventListener(this, 'tap', callback);
        } else {
            Gestures.removeEventListener(this, 'tap');
        }
    }
}

export const BackDrop = register('back-drop', {
    prototype: BackDropComponent,
});
コード例 #5
0
/**
 * DNA Component
 * Copyright (c) 2016 Chia Lab s.r.l.
 * All rights reserved.
 *
 * @name vjs-media-source
 * @author Chialab s.r.l. <*****@*****.**> (http://www.chialab.com)
 * @description A set of components to handle media sources.
 */
import { register } from 'dna/components';
import { MediaSourceComponent } from '../../media-source/media-source.js';

export class VideoJSMediaSourceComponent extends MediaSourceComponent {
    getMimeByUrl(url) {
        if (VideoJSMediaSourceComponent.isYouTubeUrl(url)) {
            return 'video/youtube';
        }
        return super.getMimeByUrl(url);
    }
    static isYouTubeUrl(url) {
        return url && url.match(/^(https?\:\/\/)?(www\.)?(youtube\.com|youtu\.?be)\/.+$/);
    }
}

export const VideoJSMediaSource = register('vjs-media-source', {
    prototype: VideoJSMediaSourceComponent,
});