在背景中播放m4v视频文件,即仅播放声音

时间:2011-10-27 06:53:22

标签: android media-player m4v audio-player

我试图在后台单独播放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文件或某种方式我需要在后台播放。 如何实现?

提前致谢。

1 个答案:

答案 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();

我自己尝试过并且有效。我知道这是一种糟糕的方式来获取背景音频,但如果你没有任何其他解决方案,我认为这就足够了。