如何播放音频标签?

时间:2013-04-20 23:51:42

标签: javascript html5

我正在根据图库中的当前图片动态更改HTML5音频标记源。

但我的HTML5音频播放器根本无法播放。

这是我的播放器:

<div id="audioPlayer">
    <a onclick="playSound()">
        <audio class="audioPlayer" preload="none" controls src="">
            <source type="audio/ogg" src="" class="audio-ogg" />
            <source type="audio/mpeg" src="" class="audio-mp3" />
            <source type="audio/wav" src="" class="audio-wav" />
        </audio>
        <img src="img/playBtn.png" alt="Play" />
    </a>
</div>


function loadSound(galleryIndex) {
    document.getElementsByClassName('audio-ogg')[0].src = "sounds/" + galleryAudio.sounds[galleryIndex].ogg;
    document.getElementsByClassName('audio-mp3')[0].src = "sounds/" + galleryAudio.sounds[galleryIndex].mp3;
    document.getElementsByClassName('audio-wav')[0].src = "sounds/" + galleryAudio.sounds[galleryIndex].wav;
}

function playSound() {
    // galleryAudio.tag.play();
    // console.log(document.getElementsByClassName('audioPlayer')[0]);
    galleryAudio.tag.play();
    return false;
}

function initialise() {
    galleryAudio.tag = document.getElementsByClassName('audioPlayer')[0];
}

var galleryAudio = {
    tag: null,
    sounds: [{
            "ogg": "square.ogg",
            "mp3": "square.mp3",
            "wav": "square.wav"
        }, {
            "ogg": "rectangle.ogg",
            "mp3": "rectangle.mp3",
            "wav": "rectangle.wav"
        }, {
            "ogg": "circle.ogg",
            "mp3": "circle.mp3",
            "wav": "circle.wav"
        }, {
            "ogg": "equilateral-triangle.ogg",
            "mp3": "equilateral-triangle.mp3",
            "wav": "equilateral-triangle.wav"
        }, {
            "ogg": "isosceles-triangle.ogg",
            "mp3": "isosceles-triangle.mp3",
            "wav": "isosceles-triangle.wav"
        }, {
            "ogg": "right-angle-triangle.ogg",
            "mp3": "right-angle-triangle.mp3",
            "wav": "right-angle-triangle.wav"
        }, {
            "ogg": "scalene-triangle.ogg",
            "mp3": "scalene-triangle.mp3",
            "wav": "scalene-triangle.wav"
        }, {
            "ogg": "pentagon.ogg",
            "mp3": "pentagon.mp3",
            "wav": "pentagon.wav"
        }, {
            "ogg": "hexagon.ogg",
            "mp3": "hexagon.mp3",
            "wav": "hexagon.wav"
        }, {
            "ogg": "heptagon.ogg",
            "mp3": "heptagon.mp3",
            "wav": "heptagon.wav"
        }, {
            "ogg": "octagon.ogg",
            "mp3": "octagon.mp3",
            "wav": "octagon.wav"
        }
    ]
};

window.addEventListener('load', initialise, true);

为什么我的音频播放器不能播放?

2 个答案:

答案 0 :(得分:1)

因为永远不会调用loadSound

window is loaded
  └─ initialise()

button clicked
  └─ playSound()
       └─ galleryAudio.tag.play()

试试这个:

 <audio oncanplay="playSound()" src="...">

答案 1 :(得分:0)

我已经修好了!

事实证明,如果音频标签中有<source>src=""标签,它会尝试播放空白音频源。

我只需要删除它,嘿presto!