繁体   English   中英

带有选择,选项和音频的onchange

[英]onchange with select, option and audio

我整天都在摆弄这个代码,但似乎无法正常工作,我想知道你们中的任何一个是否可以告诉我问题出在哪里?

我有2个选项供您选择,并且音频应根据所选选项而变化。 选择显示为应该具有两个可用选项,但音频未显示,因此我认为问题出在以下几行:
audioFiles.options[audioFiles.selectedIndex].id == "English"

<div>
    <i>Audio:</i> 
    <select id="audioFiles" onchange="toggle()">
        <option id="English" value="audio/english.mp3">
            English
        </option>
        <option id="German" value="audio/german.mp3">
            Deutch
        </option>
    </select>                
    <audio controls id="audioPlayer">
        <source id="mp3" type="audio/mpeg">
        <source id="ogg" type="audio/ogg">
        <source id="wav" type="audio/wav">
        <embed id="embedded" height="50" width="100">
    </audio>
</div>
function toggle()
{
    var audioFiles = document.getElementById("audioFiles");

    var mp3 = document.getElementById("mp3");
    var ogg = document.getElementById("ogg");
    var wav = document.getElementById("wav");
    var embedded = document.getElementById("embedded");

    if (audioFiles.options[audioFiles.selectedIndex].id == "English") {
        var audioPath = document.getElementById("English");
        mp3.src = audioPath.value;
        ogg.src = audioPath.value;
        wav.src = audioPath.value;
        embedded.src = audioPath.value;
    }
    else if(audioFiles.options[audioFiles.selectedIndex].id == "German")
    {
        var audioPath = document.getElementById("German");
        mp3.src = audioPath.value;
        ogg.src = audioPath.value;
        wav.src = audioPath.value;
        embedded.src = audioPath.value;
    }
}

你们中有人能看到我做错了吗? 我没有使用jQuery,并且文件的路径是应该的。

这里有几件事,其中一项是:

if (audioFiles.options[audioFiles.selectedIndex].id == "English") {
    var audioPath = document.getElementById("English");
    mp3.src = audioPath.value;
    ogg.src = audioPath.value;
    wav.src = audioPath.value;
    embedded.src = audioPath.value;
}

您似乎将ogg.src和wav.src的值设为与mp3.src相同的值,因为您仅在选项的值中定义了MP3文件的值,当浏览器尝试播放ogg / wav时,此值会出现故障格式,因为文件是mp3扩展名,并且要发送的mime类型为ogg / wav。

但是,这可能会被浏览器本身捕获并修复,具体取决于您喜欢哪种浏览器。

HTML5音频对象具有某些属性(例如,控件),您可以通过JS操作这些属性,这些属性在此SO问题上找到。

如果要在单击选择项后播放音频,则应将此行添加到切换功能中:

document.getElementById('audioPlayer').play();

如果<source>的mime类型/ src没有错误,则此方法对您有用。

由于您正在显示控件,因此您应该能够单击“暂停” /从此处继续播放以及。

根据我的理解,这就是您的要求。 如果您需要更多详细信息,请向我们提供信息以帮助您更好。

例如你试图做什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM