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

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

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

Web Audioは、音声を処理・合成するためのWebアプリケーション向けJavaScript APIです。HTML5から導入されました。オーディオソースの選択、エフェクト・ビジュアライゼーションの追加、パンニングなど特殊効果の適用など多くの機能を持ちます。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

JavaScript

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2542閲覧

createObjectURLで作ったBlobのURLをAudioで再生するとiPhoneだけ最後まで再生されない

skyandsea

総合スコア10

Web Audio

Web Audioは、音声を処理・合成するためのWebアプリケーション向けJavaScript APIです。HTML5から導入されました。オーディオソースの選択、エフェクト・ビジュアライゼーションの追加、パンニングなど特殊効果の適用など多くの機能を持ちます。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

JavaScript

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

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2022/04/20 06:41

編集2022/04/20 06:42

WEBブラウザmp3の音楽ファイルを再生しているのですがiPhone(iOS15.4.1から)のブラウザだけ不具合が起きます、PCやAndroidのブラウザでは大丈夫です。createObjectURLで作ったBlobURLAudiosrcへセットして再生するのですが最後の3秒くらいのところでブツっと切れてしまいます。終了後に次の曲を再生としたいのですが次の曲へ行けません。
iPhoneはよくMIMEタイプで問題になるのですが今回は何を指定してもうまくいきませんでした。

  • audio/mpeg、audio/mp3 … 最後3秒くらいのところでブツっと切れる
  • audio/wave … 再生できない曲が多い(当たり前ですが)

blobをBASE64に変換して直接音楽データをsrcへ[data:audio/mpeg;base64,xxxxxxx]というように埋め込むとちゃんと再生されます。但しこの方法だとiPhoneが待機モードの時に処理がストップしてしまう別の問題があり解決に至っていません。
iPhoneのblobメモリ処置がおかしいような感じを受けるのですが解決策もしくは何か情報をお持ちでしたら教えていただけないでしょうか。

html

1 <audio id="audio" controls style="width:100%;" ></audio> 2 <form id="form"></form> 3 <script> 4 xmlhttp = new XMLHttpRequest(); 5 6 // フォームデータを取得 7 var formdata = new FormData(document.getElementById("form")); 8 xmlhttp.open("POST","m.php"); 9 xmlhttp.responseType = "blob"; 10 xmlhttp.onload = function() { 11 let blob = new Blob([xmlhttp.response],{type:"audio/mpeg"}); 12 //blob参照URL取得 13 let url = URL.createObjectURL(blob); 14 document.getElementById("audio").src = url; 15 }; 16 xmlhttp.send(formdata); 17 </script>

php(m.php)

1<?php 2$fp = fopen('Nocturne.mp3','r'); 3//音楽ファイル読み込み 4$data = fread($fp,filesize('Nocturne.mp3')); 5fclose($fp); 6//ヘッダ情報付与 7header('Content-Type:audio/mpeg'); 8//音楽データ出力 9echo $data; 10?>

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

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

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

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

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

guest

回答1

0

自己解決

Audioタグに頼るのはやめてWeb Audio API で再生することにしました。

投稿2022/04/24 11:58

skyandsea

総合スコア10

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

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

skyandsea

2022/06/01 00:15 編集

Appleデベロッパ向けフィードバックアシスタントで報告していたのですが最新OSで対応済みとなり現OSでは問題が解決していましたので共有します。(2022.6.1)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問