1

新しい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に感謝します。

4

2 に答える 2

1

media-src 'self' filesystem:filesystem: URL を許可するには、CSP ディレクティブを使用する必要があります ('self'ラップされたものではなく、拡張機能に直接 URL のみを含めますfilesystem:)。

于 2012-07-20T16:15:53.127 に答える
0

マニフェストに「content_security_policy」文字列がありますか。

そうでない場合は、manifest_version : 2 を使用していますか。「content_security_policy」は次のように設定されています

"script-src 'self'; object-src 'self';"

マニフェスト バージョン 2のドキュメントを参照してください

メディア ソースを CSP 文字列に追加する必要がある場合があります。

メディア-src: 「自己」

コンテンツ セキュリティ ポリシーについては、MDN hereで説明されています。

于 2012-07-20T07:35:27.507 に答える