私は単純なJavaScript audiotrackコントローラを構築しており、私のコードに何が問題なのか分かりません。私はここで何時間も探していて、仕事をした簡単なコードを見つけました。私は(これはタイプミスやコードの誤りに)多くのことを変更しなければならなかったと私は最終的にこれを得た:JavaScriptオーディオプレーヤー
var TRACKS = [
{
id: 0,
nom: 'Johnny B. Goode',
autor: 'Chuck Berry',
src: 'src/johnnybgoode.mp3',
any: '1955'
},
{
id: 1,
nom: 'For Your Love',
autor: 'The Yardbirds',
src: 'src/foryourlove.mp3',
any: '1965'
}
];
var songs = 2;
var Player = function() {
"use strict";
var currentPlaying,
trackListPos,
trackList,
source,
audio;
this.getName = function() {
return currentPlaying.nom;
};
this.setTrack = function (obj) {
currentPlaying = obj;
source.src = obj.src;
audio.load();
audio.play();
return this;
};
this.setTrackList = function (t) {
trackList = t;
trackListPos = 0;
audio = document.getElementById('myAudio');
source = document.getElementById('audioSource');
this.setTrack(trackList[trackListPos]);
return this;
};
this.play = function() {
audio.load();
audio.play();
return this;
};
this.stop = function() {
audio.pause();
audio.currentTime = 0;
return this;
};
this.pause = function() {
audio.pause();
};
this.next = function() {
if (currentPlaying.id === (songs - 1)) {
trackListPos = 0;
} else {
trackListPos += 1;
}
this.setTrack(trackList[trackListPos]);
};
};
//Initialize
var reprod = new Player();
reprod.setTrackList(TRACKS).play();
function play() {
\t "use strict";
\t reprod.play();
\t document.getElementById("Play").innerHTML = "Pause";
}
function seguent() {
"use strict";
\t reprod.next();
document.getElementById("titol").innerHTML = "<b>Títol:</b>";
}
<audio id="myAudio" controls="controls">
<source id="audioSource" src="">
Your browser does not support the audio format.
</audio>
<nav class="navegador" id="sidebar">
<div class="playerwrapper">
<div class="player">
<p id="titol"></p>
<p id="autor"></p>
<p id="any"></p>
<button type="button" onclick="seguent()">Següent</button>
<button id="Play" type="button" onclick="play()">Play</button>
</div>
</div>
</nav>
()とseguent()(次に意味する)。そして、彼らはうまくいかないようです。 再生ボタンのテキストを変更するinnerHTMLは機能しませんが、 "reprod.play();"を削除すると、ボタンの内容を変更します。
私のコードで何が起こっているのか誰かが説明できますか?
(ポストが面倒であれば申し訳ありませんが、それはここで私の第2のポストだと私はフォーマットを知らない)私は、コンソールを使用することができます知らせるため
おかげで、スローエラーは以下のとおりです。
Uncaught TypeError: Cannot read property 'load' of null
Uncaught TypeError: Cannot set property 'src' of null
それは)( 'reprod.playを呼び出す' JavaScriptエラーを投げている可能性がありますが。コンソールにエラーメッセージが表示されているかどうかを確認し、質問があれば共有します。 – samanime
未知の型エラー:ヌルのプロパティ 'src'を設定できません キャッチしない型エラー:nullのプロパティ 'load'を読み取れません –
どの行ですか?それはどのようなコード行を参照していますか? – samanime