簡體   English   中英

無法在JavaScript中加載音頻文件

[英]Can't load audio file in javascript

這是我用於加載和播放音頻文件的代碼。

<!DOCTYPE HTML>
<html lang="en-US">
<head>
     <meta charset="UTF-8">
     <title>Test audio</title>
</head>
<body>
<script type="text/javascript">
    window.onload = function() {
        var audio = new Audio("../../data/audio/background.ogg");
        audio.preload = "auto";

        audio.addEventListener('ended', function() {
            alert('ended');
        }, false);
        audio.addEventListener('canplaythrough', function() {
            audio.loop = true;
            audio.play();
        }, false);

        audio.onerror = function(event) {
            console.log(event.code);
        }

        audio.load();
    }
</script>
</body>
</html>

但是我無法在Chrome上運行它(Firefox或IE 9都可以使用),因為加載音頻文件時,我總是會收到錯誤消息

錯誤

如何修復我的代碼?

在桌面版Chrome上,您可以僅使用HTML而無需任何Javascript來自動執行此操作。

<audio autoplay>
  <source src="test.ogg" type="audio/ogg">
  <source src="test.mp3" type="audio/mpeg">
  Sorry, no Audio support
</audio>

您的代碼通常應該可以工作。 我只是將其放入http://jsbin.com/usific/1,並添加了自己的音頻文件,可以看到它正在下載整個文件,看起來您的服務器未接受請求,或者您輸入了不正確的文件網址。

這對我有用:

        var audioElement;
        audioElement = new Audio("");
        audioElement.addEventListener('ended', function() {
            this.currentTime = 0;
            this.play();
        }, false);

        document.body.appendChild(audioElement);
        audioElement.src = '../../data/audio/background.ogg';
        audioElement.id = "audioElement";

        audioElement.addEventListener('canplaythrough', function() {
            audioElement.play();
        }, false);

        audioElement.addEventListener('ended', function() {
            alert('ended');
        }, false);

        audioElement.onerror = function(event) {
           console.log(event.code);
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM