html5媒体标记随播放列表中媒体类型的更改而变化

时间:2013-07-23 04:17:26

标签: html5-video playlists

我需要使用HTML5媒体标签从本地计算机创建所选媒体(音频和视频)的播放列表。我使用以下代码

http://jonhall.info/how_to/create_a_playlist_for_html5_audio

现在面临的问题是这一行         extension = audio.canPlayType('audio / mpeg')? '.mp3':audio.canPlayType('audio / ogg')? '.ogg':'';

它只播放音频文件,如果我将其更改为视频/ mp4它只播放视频文件,如果我使用if else然后第一个条件正在工作

                if(audio.canPlayType('video/mp4')) {
                extension = '.mp4';
                }
                else if
                (audio.canPlayType('audio/mpeg')) {
            extension = '.mp3';
            }

请帮助我说明我可以在播放列表中播放这两种类型媒体的条件,如果可能的话,我也可以根据所选媒体的类型切换视频/音频标签。

感谢提前

1 个答案:

答案 0 :(得分:0)

要在播放列表中同时使用视频和音频,您应该使用html5视频标记而不是音频标记。您不需要来回切换。视频标签将同时播放音频和视频文件。

要使用列出的网站中的代码,您需要知道是否正在加载视频或音频文件。然后,您可以根据脚本中的浏览器支持确定要使用的正确扩展名。请参阅下面的新html5视频和音频播放列表示例:

http://jonhall.info/examples/html5_video_audio_playlist_example.html

在新示例中,我替换了代码:

extension = audio.canPlayType('audio/mpeg') ? '.mp3' : audio.canPlayType('audio/ogg') ? '.ogg' : '';

有一个功能:

getExtension = function(type) {
    extension = '';
    if(type === 'a') {
        if(video.canPlayType('audio/mpeg')) {
            extension = '.mp3';
        }
        if(video.canPlayType('audio/ogg')) {
            extension = '.ogg';
        }
    }
    if(type === 'v') {
        if(video.canPlayType('video/mp4')) {
            extension = '.mp4';
        }
        if(video.canPlayType('video/ogg')) {
            extension = '.ogv';
        }
    }
    return extension;
};

将字母'a'传递给音频,或将'v'字母传递给视频。