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

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

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

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

JavaScript

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

Q&A

解決済

3回答

3693閲覧

ストリーミングを同時に8つ再生する方法について

Cafelike

総合スコア89

HTML5

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

JavaScript

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

1グッド

1クリップ

投稿2015/11/30 07:18

###前提・実現したいこと
javascriptでmp3ファイルを最大で8つまで再生できるアプリケーションを作成しています。このmp3はストリーミングである音声をリアルタイムで流し続けます。
8つのmp3を同時にダウンロード(再生)する方法を探しています。
もしくは下記制約を回避する手段でも構いません。

###発生している問題・エラーメッセージ
GoogleChromeでの場合ですが、mp3を6つ再生状態とすると、
その他のHTTPリクエストが全く行えない状態になってしまいます。
この6つというのは、Chromeの仕様で1サーバーへのアクセスに使える
接続は6までという制限が原因であることがわかりました。
(だいたいのブラウザが6までの制限を持っているようです。)

###ソースコード
実際とは違いますが、やりたいことは以下のイメージです。

var audio1 = new Audio(); var audio2 = new Audio(); var audio3 = new Audio(); var audio4 = new Audio(); var audio5 = new Audio(); var audio6 = new Audio(); var audio7 = new Audio(); var audio8 = new Audio(); audio1.src="streaming1.mp3"; audio2.src="streaming2.mp3"; audio3.src="streaming3.mp3"; audio4.src="streaming4.mp3"; audio5.src="streaming5.mp3"; audio6.src="streaming6.mp3"; audio7.src="streaming7.mp3"; audio8.src="streaming8.mp3"; audio1.play(); audio2.play(); audio3.play(); audio4.play(); audio5.play(); audio6.play(); audio7.play(); audio8.play();

###補足情報(言語/FW/ツール等のバージョンなど)
GoogleChrome46

tanat👍を押しています

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

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

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

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

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

guest

回答3

0

自己解決

結果として、
HTML/javascriptで色々工夫してみましたが、ダメでした。
以下に試行した結果を記しておきます。

【実験1】
WEBサーバの80以外のポートでバーチャルホストを立て、ブラウザからは別サイトに見えるようにすることで同時接続6個の制限を回避しようとした。
結果はブラウザにクロスサイトでセキュリティ違反とされスクリプト実行を禁止される。
Microsoft Edgeだけはできました…

【実験2】
WEBページ内に実験1で作成した別ポートのWEBサイトをIFRAME内で表示し、そのページとデータをやり取りすることで同時接続6個の制限を回避しようとした。
結果はブラウザにクロスサイトでセキュリティ違反とされスクリプト実行を禁止される。
Microsoft Edgeだけはできました…

ブラウザの仕様には注意が必要だなと感じました。

投稿2015/12/04 03:01

Cafelike

総合スコア89

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

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

0

CloudFlareでHTTP/2の対応がされたようなので利用してみてはどうでしょう。

CloudFlare HTTP/2 | CloudFlare | The web performance & security company

投稿2015/12/04 02:32

sho_cs

総合スコア3541

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

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

Cafelike

2015/12/04 02:53

ご回答ありがとうございます。 CloudFlareという負荷分散サービスがあることを初めて知りました。 参考になります。
guest

0

同時のHTTPアクセス数を増やすのは、ユーザーにブラウザの設定を変えてもらうしか無いです。ブラウザによってはそもそも変更できない物もあるでしょう。

サーバー側で出来るのは、音声を合成して1ストリームにすることくらいでしょうか。

投稿2015/11/30 12:04

otn

総合スコア84499

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

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

Cafelike

2015/11/30 23:57

回答ありがとうございます。 当方でも調べた結果、HTTP/2で実現できる可能性がありそうです。 まだ検証はできていませんが…。 ブラウザ側にて音源のボリュームを個別に監視させたいので今回は音声合成は厳しそうです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問