私は何を間違っているのだろうか?
$('.player_audio').click(function() {
if ($('.player_audio').paused == false) {
$('.player_audio').pause();
alert('music paused');
} else {
$('.player_audio').play();
alert('music playing');
}
});
「player_audio」タグを押すと、オーディオトラックを開始できないようです。
<div class='thumb audio'><audio class='player_audio' src='$path/$value'></audio></div>
何が間違っているのか、それを機能させるために何をしなければならないのか?
まあ、100%確信はありませんが、jQueryはこれらの関数と属性(_.paused
_、.pause()
、.play()
)を拡張/解析するとは思いません。
次のように、DOM要素を介してこれらにアクセスしてください。
_$('.player_audio').click(function() {
if (this.paused == false) {
this.pause();
alert('music paused');
} else {
this.play();
alert('music playing');
}
});
_
JQueryでトリガーを介してネイティブメソッドを呼び出すことができます。これを行うだけです:
_$('.play').trigger("play");
_
一時停止についても同じ:$('.play').trigger("pause");
編集:コメントでF ...が指摘したように、プロパティにアクセスするのと同様のことができます:$('.play').prop("paused");
理由はわかりませんが、古いskool document.getElementById();を使用する必要がありました。
<audio id="player" src="http://audio.micronemez.com:8000/micronemez-radio.ogg"> </audio>
<a id="button" title="button">play sound</a>
そしてJS:
$(document).ready(function() {
var playing = false;
$('a#button').click(function() {
$(this).toggleClass("down");
if (playing == false) {
document.getElementById('player').play();
playing = true;
$(this).text("stop sound");
} else {
document.getElementById('player').pause();
playing = false;
$(this).text("restart sound");
}
});
});
例を確認してください: http://jsfiddle.net/HY9ns/1/
この thread は非常に役に立ちました。 jQueryセレクターには、次のコードが選択された要素のどれに適用されるかを知らせる必要があります。最も簡単な方法は、
[0]
といった
$(".test")[0].play();
1行のコードでトグルするのもいいかもしれません。
let video = $('video')[0];
video[video.paused ? 'play' : 'pause']();
Javascriptを使用してみてください。私のために働く
Javascript:
var myAudioTag = document.getElementById('player_video');
myAudioTag.play();
このコードを簡単に追加
var status = "play"; // Declare global variable
if (status == 'pause') {
status='play';
} else {
status = 'pause';
}
$("#audio").trigger(status);
Firefoxはmp3形式をサポートしていないためです。これをFirefoxで機能させるには、ogg形式を使用する必要があります。
単に使用する
$('audio').trigger('pause');
ここに私の解決策があります(ページ上の別の要素をクリックする場合):
$("#button").click(function() {
var bool = $("#player").prop("muted");
$("#player").prop("muted",!bool);
if (bool) {
$("#player").prop("currentTime",0);
}
});
あなたがそれをプレイしたい場合は、使用する必要があります
$("#audio")[0].play();
停止したい場合は、使用する必要があります
$("#audio").stop();
理由はわかりませんが、うまくいきます!
reason試行がうまくいかなかった理由は、an(= one!)要素ではなく、要素のコレクションを返すクラスセレクタを使用したためです、プレーヤーのプロパティとメソッドにアクセスする必要があります。それを機能させるために、基本的に3つの方法がありますが、それらは言及されていますが、概要のためだけです:
コレクションではなく要素を取得する方法.
コレクションを反復処理し、the要素をthis
で取得します(受け入れられた回答のように)。
可能な場合、IDセレクターを使用します。
コレクションの最初の要素を返すセレクタに[0]
を追加することで、コレクション内の位置を介して、コレクションの要素を取得して取得します。
他の誰かが上記のソリューションに問題がある場合、私はイベントに行きました:
$("#jquery_audioPlayer").jPlayer({
ready:function () {
$(this).jPlayer("setMedia", {
mp3:"media/song.mp3"
})
...
pause: function () {
$('#yoursoundcontrol').click(function () {
$("#jquery_audioPlayer").jPlayer('play');
})
},
play: function () {
$('#yoursoundcontrol').click(function () {
$("#jquery_audioPlayer").jPlayer('pause');
})}
});
私のために働く。
JQueryアコーディオンの内部でそれを行いました。
$(function() {
/*video controls*/
$("#player_video").click(function() {
if (this.paused == false) {
this.pause();
}
});
/*end video controls*/
var stop = false;
$("#accordion h3").click(function(event) {
if (stop) {
event.stopImmediatePropagation();
event.preventDefault();
stop = false;
}
$("#player_video").click();
});
});
ここにjQueryを使用した私のソリューションがあります
<script type="text/javascript">
$('#mtoogle').toggle(
function () {
document.getElementById('playTune').pause();
},
function () {
document.getElementById('playTune').play();
}
);
</script>
そして、作業デモ