0

バックグラウンドでm4vファイルのオーディオを単独で再生しようとしています。

使用SoundPoolしてみましたが、rawフォルダからロードしているときにエラーが発生します。

このサンプルプログラムを使用しました。

10-27 11:49:11.684: ERROR/AndroidRuntime(1484): Caused by: android.content.res.Resources$NotFoundException: File Hello World, AudioPlayerActivity! from drawable resource ID #0x7f040000
10-27 11:49:11.684: ERROR/AndroidRuntime(1484):     at android.content.res.Resources.openRawResourceFd(Resources.java:860)
10-27 11:49:11.684: ERROR/AndroidRuntime(1484):     at   android.media.SoundPool.load(SoundPool.java:204)
10-27 11:49:11.684: ERROR/AndroidRuntime(1484):     at com.sample.audio.AudioPlayerActivity.onCreate(AudioPlayerActivity.java:31)
10-27 11:49:11.684: ERROR/AndroidRuntime(1484):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069)
10-27 11:49:11.684: ERROR/AndroidRuntime(1484):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751)
10-27 11:49:11.684: ERROR/AndroidRuntime(1484):     ... 11 more

しかし、私はを使用してファイルを再生することができますVideoViewが、オーディオのみが必要です。

サウンドプールでm4vファイルを再生する方法や、バックグラウンドで再生する必要がある方法がわかりません。それを達成する方法は?

前もって感謝します。

4

1 に答える 1

0

まず、サポートされているメディア形式のページをご覧ください。m4v 形式は見たことがありませんが、うまく動作する場合は以下を参照してください。

使い方はわかりませんが、使いSoundPoolたい場合は、エンコーダーを使用してビデオからサポートされているオーディオ形式を推定することをお勧めします。

最後に、VideoView を使用した解決策を提案できます (ビデオが機能するとおっしゃっているので)。あなたのmain.xmlにこれを入れてあなたを参照してくださいVideoView

<VideoView
   android:id="@+id/video"
   android:layout_width="0.1px"
   android:layout_height="0.1px">
</VideoView>

onCreateアクティビティのメソッドでこのコードを使用します。

String uri = "android.resource://" + getPackageName() + "/" + R.raw.videoname;
VideoView video = (VideoView) findViewById(R.id.video);
video.setVideoURI(Uri.parse(uri));
video.start();

私はそれを自分で試してみましたが、うまくいきます。これがバックグラウンドでオーディオを取得する悪い方法であることはわかっていますが、他に解決策がない場合は、これで十分だと思います。

于 2011-11-02T10:33:04.130 に答える