簡體   English   中英

移動設備上的HTML5 base64編碼音頻

[英]HTML5 base64 encoded audio on mobile devices

我正在編寫一個帶有音頻播放組件的平台。 音頻作為wav / mp3 / ogg文件上傳到服務器,然后(就像我們的其他媒體一樣),轉換為base64並存儲在我們的redis數據庫中。

要在客戶端播放音頻,我們向服務器發出AJAX請求以獲取base64編碼的音頻。 我們有一個與移動應用程序相稱的桌面版本,目前音頻播放的工作方式如下:

recording.sound = new Audio("data:audio/ogg;base64," + recording.audio);
recording.sound.play(); // this works

今天我們開始在移動設備上進行測試,到目前為止,即使在顯然支持HTML5音頻的移動瀏覽器上也無法使其正常運行。

有任何想法嗎? 或者,如果這是不可能的,我們可以采取不同的方法嗎? 理想情況下,應該有一個移動兼容版本的Web應用程序,並且必須有一個phonegap版本。

但是“audio / wav”不存在。 請參閱此處的規范: http ://www.iana.org/assignments/media-types/audio您應該使用“audio / vnd.dts”表示.wav文件,“audio / mpeg”表示.mp3文件和“audio / ogg “對於.ogg文件......

好的,試試StackOverflow搜索,參見:
https://stackoverflow.com/search?q=audio+codec+support+mobile+devices+html5
或者https://stackoverflow.com/search?q=audio+codec+support+mobile+devices+html
或嘗試谷歌
一些搜索結果可能有用:
搜索知道檢測特定音頻視頻格式文件支持的庫
或者html5 vs flash - 完整的比較圖表在哪里?

這個原因可能不是技術問題,來自Apple開發者網站:

在iOS上的Safari(適用於所有設備,包括iPad)中,用戶可能位於蜂窩網絡上並按數據單元收費,因此禁用預加載和自動播放。 在用戶啟動數據之前不會加載任何數據。 這意味着JavaScript play()和load()方法在用戶啟動回放之前也處於非活動狀態,除非用戶操作觸發play()或load()方法。 換句話說,用戶啟動的播放按鈕有效,但onLoad =“play()”事件不起作用。

同樣適用於Android設備。

在此處閱讀更多內容: Safari HTML5音頻和視頻指南

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM