0

我试图在后台单独播放 m4v 文件音频。

我尝试使用SoundPool它,它在从原始文件夹加载它时给了我错误。

我使用了这个示例程序

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但我只需要音频。

我不知道如何在 soundpool 中播放 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 回答