質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

247閲覧

さいサーバー環境でJavaScriptでのAudio再生完了が返ってこない

wakka0014

総合スコア15

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/02/15 02:24

編集2018/02/16 13:37

HTML5/JSを用いてMP3ファイルを再生しております。
Audio①を再生完了⇒Audio②を再生を実装しております。

ローカル環境ではうまく再生できるのですが、サーバーにあげたら
Audio①しか再生されません。恐らく再生完了が返ってこないと思われます。

また、HTML側ではプルダウンメニューにて再生する音を選択できるように設定しております。

ご教授お願いします。

ー追記ー
ご回答ありがとうございます。すいません挙動が異なりましたので修正します。
PCでサーバー上ではオーディオ再生できました。
しかしスマホでは再生できない状況です。
PC:FireFox,Chrome
スマホ(iPhone5):Safari,Chrome
になります。

ー再追記ー
PCだと再生できました。
iOS,Androidだと再生できません。
原因不明です。。

■フォルダ構成
/audio/aa/audioA1.mp3
------------audioA2.mp3
-------bb/audioB1.mp3
------------audioB2.mp3

■HTML

HTML

1<!-- ○A --> 2<p>A: 3<select name="A"> 4 <option value="audioA1">A1</option> 5 <option value="audioA2">A2</option> 6 <option value="audioA3">A3</option> 7</select> 8</p> 9 10<!-- ○B --> 11<p>B: 12<select name="B"> 13 <option value="audioB1">B1</option> 14 <option value="audioB2">B2</option> 15 <option value="audioB3">B3</option> 16</select> 17</p> 18 19<!-- ○再生ボタン --> 20<p> 21<form name="playButton"> 22 <input type="button" name="playButton" value="再生" onClick="playAudio()"> 23</form> 24</p>

■JavaScript

JavaScript

1//再生スタート 2function playAudio(){ 3 //Aの値を取得 4 var selectedA = $("#A").val(); 5 //Bの値を取得 6 var selectedB = $("#B").val(); 7 8 //Aのパスを指定 9 audioA.src = "audio/aa/" + selectedA + ".mp3"; 10 //Bのパスを指定 11 audioB.src = "audio/bb/" + selectedB + ".mp3"; 12 13 //Aを再生 14 audioA.play(); 15 16 //★Aの再生が完了したら 17 audioA.addEventListener("ended", function(e) { 18 //Bを再生 19 audioB.play(); 20 }); 21}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/02/15 02:38

著作権に保護されたコンテンツじゃありませんか?
m.ts10806

2018/02/15 05:00

ブラウザの開発者ツールにてコンソールになにかエラーが出ていないかご確認ください(でていたら質問本文に追記してください)
wakka0014

2018/02/15 13:52

ご回答ありがとうございます。著作権保護はありませんでした。
wakka0014

2018/02/15 13:58

コンソールエラーは出てましたが、想定されているエラーでした(指定したmp3ファイルが読み込めないとエラーが出ていましたが、ファイルアップしていないので問題ないです)
guest

回答1

0

自己解決

自分でググってたら同じ事象の内容が見つかったので共有します。

https://stackoverflow.com/questions/10985640/html5-audio-callback-fails-on-safari-ios

結論、iOSだとJavaScriotのAudioの再生終了検知(ended)が返されないんですね。。
Android端末も持っているのでAndroidで確認して結果を再度連絡します。

-2018/02/19 追記-
問題解決したので共有します。
Android/iOS共に実施してみたのですが、両方ともうまくいきませんでした。
結論、あらかじめAudio②を再生すればAudio①→Audio②の再生がうまくいきました。

他の方法があるようなないような。。w

投稿2018/02/16 01:17

編集2018/02/19 05:28
wakka0014

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問