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

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

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

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

Q&A

解決済

6回答

12391閲覧

どのブラウザでも.wavファイルを再生、停止できるjavascriptの書き方を教えてください。

oui914

総合スコア10

JavaScript

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

0グッド

1クリップ

投稿2016/08/04 16:45

###前提・実現したいこと
どのブラウザでも.wavファイルを再生、停止できるjavascriptの書き方があれば教えてください。

###発生している問題・エラーメッセージ
下記のソースコードをネットで見つけたのですが、
IE11で停止ができません。

また、safari9.1.2では再生もできません。
(safariバージョンアップ前は再生できていたはずなのですが・・・)

Google chrome51.0.2704.106では再生、停止が可能です。

###該当のソースコード

<!doctype html> <html> <head> <meta charset="UTF-8"> <title>wav再生</title> <script type="text/javascript"> var sound2Embed = null; function init() { } function sound2Play() { if ( !sound2Embed ) { sound2Embed = document.createElement("embed"); sound2Embed.setAttribute("src", "http://tam-music.sub.jp/se/data/phrase/wave/soft-001.wav"); sound2Embed.setAttribute("hidden", true); sound2Embed.setAttribute("autostart", true); } else sound2Stop(); sound2Embed.removed = false; document.body.appendChild(sound2Embed); } function sound2Stop() { if ( sound2Embed && !sound2Embed.removed ) { document.body.removeChild(sound2Embed); sound2Embed.removed = true; } } </script> </head> <body onload="init();"> <input type="submit" onclick="sound2Play();" name="Play 2" value="Play 2"> <input type="submit" onclick="sound2Stop();" name="Stop 2" value="Stop 2"> </body> </html> ```###試したこと https://www.ipentec.com/document/document.aspx?page=javascript-play-sound-using-audio-object 上記URLのようなサイトを探し、他のスクリプトも試してみたのですが、 どうしてもIEのみ再生が不可能なようです。(.mp3に変更すると再生、停止が可能でした。) どのブラウザでもというのは検証が大変かと思いますので、 IE、safari、Googlechromeだけでも再生、停止が可能なjavascriptの書き方がありましたら、教えていただければと存じます。 上記コードの修正ではなく、まったく違う書き方でも結構です。 何卒よろしくお願いします。

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

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

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

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

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

guest

回答6

0

要素消しても音が止まりませんね。
iframe上で再生して、stopは iframeのリロードでどうですか。

投稿2016/08/05 04:46

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

oui914

2016/08/05 17:59

ご回答ありがとうございます。 IEで停止できない問題は仰せの通りリロードすることで回避しました。
guest

0

Audio API は IE11- と Opera mini が絶望的なので Audio API と Flash Player を併用してはどうでしょうか。
モバイルOSでFlashが利用不可なので一つの方法で実装するのは不可能だと思います。
http://caniuse.com/#feat=wav
http://caniuse.com/#feat=audio
https://www.google.co.jp/search?q=flash+wav+player

Te: oui914 さん

投稿2016/08/05 04:27

think49

総合スコア18164

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

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

oui914

2016/08/05 18:01

ご提案ありがとうございます。 また、URLの記載ありがとうございました。 勉強になります。
guest

0

参考になるページ

html

1<audio id="test" preload="auto"> 2  <source src="audio.mp3" type="audio/mpeg"> 3  <source src="audio.wav" type="audio/wav"> 4</audio> 5<script> 6var test = document.getElementById("test"); 7test.play(); // 再生 8</script>

投稿2016/08/04 22:52

編集2016/08/04 22:54
stmkza

総合スコア478

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

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

0

自己解決

該当のソースコードの停止ボタンをリロードに変更、
ユーザーエージェントで読み込むスクリプトを振り分け、
IEのスクリプトは該当のソースコード、
IE以外のブラウザは
https://www.ipentec.com/document/document.aspx?page=javascript-play-sound-using-audio-object
に記載されているコードを読み込ませ自己解決できました。

みなさん、多くのご回答ありがとうございました。

投稿2016/08/05 18:13

oui914

総合スコア10

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

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

0

html

1<audio preload="auto" id="audio"> 2<source src="audio.wav" type="audio/wav"> 3<source src="audio.mp3" type="audio/mpeg"> 4</audio> 5<script> 6var audio = document.getElementById("audio"); 7var startbtn = document.getElementById("start"); 8var pausebtn = document.getElementById("pause"); 9var stopbtn = document.getElementById("stop"); 10function start(){ 11startbtn.disabled = true; 12pausebtn.disabled = false; 13stopbtn.disabled = false; 14audio.play(); 15} 16function pause(){ 17startbtn.disabled = false; 18pausebtn.disabled = true; 19stopbtn.disabled = true; 20audio.pause(); 21} 22function stop(){ 23startbtn.disabled = false; 24pausebtn.disabled = true; 25stopbtn.disabled = true; 26audio.currentTime = 0; 27audio.pause(); 28} 29</script> 30<input type="button" value="START" id="start" onclick="start();"> 31<input type="button" value="PAUSE" id="pause" onclick="pause();" disabled> 32<input type="button" value="STOP" id="stop" onclick="stop();" disabled>

これでどうでしょうか?

投稿2016/08/05 05:16

stmkza

総合スコア478

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

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

oui914

2016/08/05 18:00

私の記述が間違っているのでしょうか。 IE、chrome、safariどのブラウザでも再生できませんでした。
guest

0

IEはなぜかマイクロソフトが作ったWaveの再生には対応していません。
複数の形式を用意しておいてください。

投稿2016/08/04 22:48

stmkza

総合スコア478

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

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

oui914

2016/08/05 01:27

ご回答いただきありがとうございます。 わかりづらい文章で申し訳ございませんでした。 ご回答いただいた通り、情報を検索する際、 『IEはWavの再生には対応していない』との記述をいくつか見たのですが、 上記に記載しているソースでは再生が可能です。 ただし停止ができません。 またsafariでは再生も停止もできません。 上記ソースを修正し、safariでの再生、停止、 IEでの停止ができるようにならないかと思い質問させていただきました。 お分かりの方がいらっしゃいましたら、教えていただければと存じます。 何卒よろしくお願いします。
stmkza

2016/08/05 03:06

下のソースでどうですか?
stmkza

2016/08/05 03:52

最近のバージョンでは再生はできるようですが、操作ができないのかもしれません。 いろいろなブラウザに対応するには種類を用意したほうがいいと思います。
oui914

2016/08/05 04:10

> 下のソースでどうですか? mp3が自動再生されます。 再生ボタン、停止ボタン設置し IE、safari、chromeでwavの再生、停止ができるスクリプトを探しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問