Воспроизведение mp3 в C # без MediaPlayer или XACT - PullRequest
1 голос
/ 22 марта 2012

Я пытаюсь запустить фоновую музыку для своей игры XNA, но все опции в XNA требуют, чтобы аудиофайлы были конвертированы в .wav и включены в качестве ресурсов проекта. Это не работает для меня по двум причинам. Во-первых, файлы .wav огромны и не приносят реальной пользы пользователю. Во-вторых, пользователь не сможет заменить папку mp3, если он предпочитает свою собственную музыку. Какие у меня есть варианты воспроизведения mp3-файлов, которые на самом деле не являются частью проекта?

1 Ответ

5 голосов
/ 22 марта 2012

После долгих поисков, я наконец-то нашел ветку этой на форумах App Hub, которая дала мне решение.

Вы можете использовать Song.FromUri для загрузки песни, затемиспользуйте MediaPlayer.Play(song) для воспроизведения указанной песни.

Uri songPath = new Uri("Songs/song.mp3", UriKind.Relative);
Song song = Song.FromUri("song", songPath);
MediaPlayer.Play(song);

В своем вопросе вы сказали (совершенно очевидно), что вы не хотите использовать MediaPlayer, но кажется, что причинапочему, потому что вам сначала нужно будет конвертировать песню, и она должна быть включена в ресурсы проекта.При этом песня должна находиться только в каталоге «Songs» (который будет находиться в том же каталоге, что и исполняемый файл).

Использование класса SoundEffect также не будет работать, так как выМне пришлось бы использовать TitleContainer.OpenStream, который любил жаловаться, когда я пытался это сделать.

...