2

アラビア語を教えるためのウェブサイトを作成しています。数字、序数、曜日などを含めています。それらすべてを含むオーディオ ファイルがあり、マウスオーバーまたはマウスクリックで再生したいと考えています。さて、これを機能させるためにオーディオを多くの部分に分割したくありません。マウスクリックまたはマウスオーバーでオーディオファイルを呼び出し、ファイルを部分的にのみ再生する方法はありますか? たとえば、1 から 10 までの数字を持つオーディオ ファイルがあり、それぞれの長さが 1 秒であるとします。ユーザーが 5 番をクリックすると、番号のオーディオ ファイルを呼び出して 5 秒目を再生して停止できるようにしたいと考えています。これは可能ですか?以下は、オーディオ全体を呼び出して再生する私のコードです。ありがとうございました!

<!DOCTYPE html>
<html>
<head>
    <title>Arabic Letters</title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

<script language="javascript" type="text/javascript">
 function playSound(soundfile) {
 document.getElementById("dummy").innerHTML=
 "<embed src=\""+soundfile+"\" hidden=\"true\" autostart=\"true\" loop=\"false\" />";
 }
 </script>

</head>

<body>
     <span id="dummy"></span> 

<a href="#" onclick="playSound('1-001_page3.mp3');"><p dir="rtl" lang="ar"
class="letter">واحِد</p></a>

</body>
</html>
4

1 に答える 1

3

グローバル変数を使用して現在の停止ポイントを設定し、timeupdateリスナーをバインドして時間に達したかどうかを確認します。

var endTime = 0;
// do this binding once at page load time
myaudio.addEventListener("timeupdate", function() {
    if(this.currentTime >= endTime) {
        this.pause();
    }
});

各イベントで、開始時間をmyaudio.currentTimeで、終了時間をendTimeplay()、オーディオを設定します。

// plays the audioObj from start to stop times (in seconds)
// call this for each snippet you wish to play (e.g., in an onclick handler)
function playInterval (audioObj, start, stop) {
    audioObj.currentTime = start*1000;
    endTime = stop*1000;
    audio.play();
}
于 2012-06-14T16:04:54.220 に答える