新しいChromeAppで問題が発生しました。
だから..私はJavaScriptFileSystemAPIを使い始めたので、それを使ってmp3ファイルを作成します(私のアプリはhtml5プレーヤーです)。
FileSystem APIのFileEntryオブジェクトは、toURL()
ファイルシステムに保存されているファイルのメソッドを提供します。ChormeAppsでは、このメソッドは次のようなものを返します。
filesystem:chrome-extension://mhldgbaidgpagmimniipggmajbodaeco/persistent/cbd416046ae7a567d4629fc38ac80864.mp3
<audio>
しかし、タグ内のこのURLをsrc
属性の値として使用しようとすると、次のエラーが発生します。
Refused to load media from 'filesystem:chrome-extension://mhldgbaidgpagmimniipggmajbodaeco/persistent/cbd416046ae7a567d4629fc38ac80864.mp3' because of Content-Security-Policy.
だから私は相対パスで明確な名前を使用しようとしました
<audio src="cbd416046ae7a567d4629fc38ac80864.mp3" />
Chromeアプリのルートパスを使用
<audio src="chrome-extension://mhldgbaidgpagmimniipggmajbodaeco/cbd416046ae7a567d4629fc38ac80864.mp3"/>
そして「永続的な」フォルダで
<audio src="chrome-extension://mhldgbaidgpagmimniipggmajbodaeco/persistent/cbd416046ae7a567d4629fc38ac80864.mp3"/>
最後の3つのケースでは、404エラーが発生しました。では、ファイルシステムからのメディアのロードを有効にするにはどうすればよいですか?マニフェストの何か、 content_security_policy
または多分permissions
?または、使用する魔法の道がありますか?
よろしくお願いします。
更新:content_security_policy
ディレクティブ
を使用しています:
default-src 'none'; style-src 'self' 'unsafe-inline'; img-src 'self' http://*.userapi.com; script-src 'self' 'unsafe-eval'; connect-src 'self' http://*.userapi.com http://vk.com http://last.fm http://ws.audioscrobbler.com; media-src 'self';
しかし、media-src 'self'
必要な結果はもたらされません。「メディアのロードを拒否しました」というエラーが引き続き表示されます。
更新2:
私がやりたいことをするための醜いハックを見つけました:media-src: 'self' *
仕事をします。しかし、この問題を解決する方法についていくつかのアイデアがあれば、私はそれらを見て本当にうれしく思います。
アップデート3: 問題は解決しました。答えてくれたMihaiParparitaに感謝します。