XNA MediaPlayer fastforward / rewind - PullRequest
       9

XNA MediaPlayer fastforward / rewind

2 голосов
/ 25 марта 2010

Используя XNA 4.0, я в настоящее время играю песни с ПК / XBox360 пользователя, используя следующее:

        Microsoft.Xna.Framework.Media.MediaPlayer.Play(Song song);

Я вижу, что MediaPlayer имеет статическое свойство PlayPosition , которое, как я исследовал, раньше было свойством get / set, но оно было обновлено только для получения .

Существуют ли какие-либо другие методы / приемы, которые я могу использовать для явной установки позиции воспроизведения текущей воспроизводимой песни?

1 Ответ

1 голос
/ 26 марта 2010

Похоже, они добавили класс DynamicSoundEffectInstance в XNA 4.0. Одной из функций-членов является SubmitBuffer , которая позволяет установить «Смещение в байтах к начальной позиции данных».

Обратите внимание, что я еще не пробовал это, и я не мог сказать вам, как передать ваше аудио в буфер байтов (может быть, вы можете прочитать его как-нибудь из волнового банка XACT?). Это также, вероятно, будет трудной задачей, потому что не похоже, что вы можете удалить буфер, если решите снова изменить положение. Вы должны либо позволить ему проиграть до конца, либо создать новый класс и отправить новый буфер с новым смещением. Таким образом, вы можете хранить свой байтовый буфер в памяти и просто передавать его новым классам DynamicSoundEffectInstance с новым смещением каждый раз, когда вы хотите изменить положение.

Как я уже сказал, я еще не пробовал это, и я просто следую документации по MSDN. Некоторое время я искал, и Шон Харгривз сказал еще в октябре '09, до выхода XNA 4.0, что не думает, что это можно сделать. Поскольку PlayPosition в XNA 4.0 все еще является свойством get only, я не думаю, что вам повезет, но DynamicSoundEffectInstance является новым и может дать вам то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...