Воспроизведение фонового аудио и видео одновременно

Мне нужно разработать приложение для Windows Phone. На этой странице мне нужно непрерывно запускать фоновое аудио и видео (в режиме повтора).

Для аудио я нашел этот пример.

Теперь, как мне добавить фоновое видео на странице? На странице мне нужно показать несколько текстовых полей и кнопок, а в фоновом режиме будут воспроизводиться видео и аудио.

Как аудио, так и видео файл будут включены в приложение, т.е. не нужно пропаривать.

3 ответа

Решение

Я фактически сделал это для своего рабочего задания несколько месяцев назад. Я обнаружил, что Silverlight для WP7 не позволяет мне воспроизводить два MediaElements одновременно. Я создал Windows Phone Silverlight и приложение XNA. (Теперь Silverlight для WP7 наконец-то создал фоновый аудиоплеер, так что вы можете сделать это таким образом, если хотите)

Ваше приложение может быть полностью в Silverlight, но тогда вы можете использовать ссылку на XNA (также вы можете получить доступ к циклу обновления, который действительно хорош)

XNA имеет класс SoundEffect и SoundEffectInstance

Затем, чтобы загрузить звук, просто сделайте следующее:

Глобалы в вашей оболочке класса Sound.cs

private SoundEffect Sound = null;
private SoundEffectInstance Instance = null;

Воспроизведение звукового эффекта в Sound.cs

Sound = ContentManager.Load<SoundEffect>(fileName); //ContentManager will have to be instantiated from wherever you create it.
Instance = Sound.CreateInstance();
Instance.Play();

Затем просто используйте Silverlight MediaElement для воспроизведения видеофайла.

XAML

<MediaElement x:Name="VideoPlayer" AutoPlay="False" Width="320" Height="220"/>

CodeBehind

VideoPlayer.Source = = new Uri("fileName", UriKind.Relative);
VideoPlayer.Play();

Если вы заботитесь о воспроизведении аудио только тогда, когда ваше приложение видно, то вам не нужно использовать фоновый звук и просто использовать MediaElement для его воспроизведения. Если вы хотите объединить аудио и видео вместе - вам может понадобиться использовать XNA для аудио, как упомянул Пол, ИЛИ вы можете отобразить видео в виде последовательности изображений / спрайтов вместо воспроизведения обычного видеофайла.

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

Вы можете добиться этого, заполнив элемент Silverlight с помощью VideoBrush, который указывает на ваше видео, воспроизводимое в невидимом MediaElement. Это позволило бы воспроизводить видео и показывать другие элементы пользовательского интерфейса сверху или вокруг него.

См. Документацию VideoBrush на MSDN, которая содержит пример того, как это сделать.

Однако следует помнить, что одновременно может существовать только один MediaElement. Поэтому, если вам нужно воспроизводить отдельные аудио и видео одновременно, вам нужно будет воспроизводить аудио с использованием класса XNA SoundEffect.

Другие вопросы по тегам