Воспроизведение видеофайла m4v в фоновом режиме, т.е. только звук - PullRequest
0 голосов
/ 27 октября 2011

Я пытаюсь воспроизвести аудио в формате 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 в саундпуле или как мне нужно играть в фоновом режиме. Как этого добиться?

Заранее спасибо.

1 Ответ

0 голосов
/ 02 ноября 2011

Прежде всего взгляните на страницу поддерживаемых форматов мультимедиа . Я не вижу формат 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();

Я сам попробовал, и это работает. Я знаю, что это плохой способ получить аудио в фоновом режиме, но если у вас нет другого решения, я думаю, что этого достаточно.

...