0

phonegap アプリを mp3 ファイルで動作させるために数時間を費やしました。私はすでに 2 つの cordova バージョン (1.9 と 2.0) をテストしました。1MBよりも大きいファイルと小さいファイルで試しました。何も助けませんでした。インターネットからのファイルでサウンドは正常に動作します:

my_media = new Media("http://www.example.com/test.mp3");
my_media.play();   

ただし、ローカル ファイルでは機能しません。

my_media = new Media("/android_asset/www/sounds/test.mp3");
my_media.play();   

Eclipse の LogCat で次のエラーがスローされます。

09-13 18:55:58.085: W/System.err(7525): java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
09-13 18:55:58.085: W/System.err(7525):     at android.content.res.AssetManager.openAssetFd(Native Method)
09-13 18:55:58.101: W/System.err(7525):     at android.content.res.AssetManager.openFd(AssetManager.java:330)
09-13 18:55:58.101: W/System.err(7525):     at org.apache.cordova.AudioPlayer.startPlaying(AudioPlayer.java:223)
09-13 18:55:58.101: W/System.err(7525):     at org.apache.cordova.AudioHandler.startPlayingAudio(AudioHandler.java:227)
09-13 18:55:58.125: W/System.err(7525):     at org.apache.cordova.AudioHandler.execute(AudioHandler.java:75)
09-13 18:55:58.125: W/System.err(7525):     at org.apache.cordova.api.PluginManager$1.run(PluginManager.java:185)
09-13 18:55:58.125: W/System.err(7525):     at java.lang.Thread.run(Thread.java:1019)

誰かが私が間違っているかもしれない提案を持っていますか?

4

1 に答える 1

1

Android の基本概念の 1 つは、アセット ファイルが圧縮され、直接アクセスできないことです。使用する :

getAssets().open(mp3FileUrl)

代わりにmp3ファイルのInputStreamを取得する

更新: phonegap を使用しているため、最初に必要なファイルをデータ ディレクトリに展開し、その後で直接使用できるようにすることをお勧めします。開梱用:

window.resolveLocalFileSystemURI("file:///android_asset/www/foo.html", onResolveSuccess, onFail);

そして、phonegap ファイル API でコピーします。ファイルにアクセスできます/data/data/packagename/filename

于 2012-09-13T17:51:25.293 に答える