我试图在后台单独播放m4v文件音频。
我尝试使用SoundPool
,并在从原始文件夹加载时给出了错误。
我使用了这个sample program。
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文件或某种方式我需要在后台播放。 如何实现?
提前致谢。
答案 0 :(得分:0)
首先看一下supported media formats页面。我没有看到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();
我自己尝试过并且有效。我知道这是一种糟糕的方式来获取背景音频,但如果你没有任何其他解决方案,我认为这就足够了。