Q:

Воспроизвести звук из ресурсов с помощью SoundPlayer

Пробовал так: 
System::IO::Stream^ s = assembly->GetManifestResourceStream("sound.wav");
System::Media::SoundPlayer^ player;
player = gcnew System::Media::SoundPlayer(s);
player->PlayLooping();

И так:
System::IO::Stream^ s = assembly->GetManifestResourceStream("sound.wav");
System::Media::SoundPlayer^ player;
player = gcnew System::Media::SoundPlayer();
player->Stream = s;
player->PlayLooping();

Результат один - никакого звука, и никакой ошибки.   Но, что примечательно при запуске одноразово воспроизводится какой-то системный звук, типа уведомления.  

A:

С помощью строки assembly->GetManifestResourceStream вы получаете поток ресурса, в котором могут содержаться несколько файлов.  А нужно получить конкретный файл.  Делается это через менеджер ресурсов. 
Assembly ^assembly = Assembly::GetExecutingAssembly();

ResourceManager ^rm = gcnew ResourceManager(assembly->GetName()->Name + ".MyForm", assembly);

SoundPlayer ^player = gcnew SoundPlayer(rm->GetStream("sound"));
player->PlayLooping();

MyForm - это название вашего файла ресурсов.  У него расширение .resx.  В коде название без расширения. 
Обратите внимание, что название звукового файла должно быть без расширения .wav - просто sound (как оно показано в визуальном редакторе ресурсов). 
Используемые пространства имён:
using namespace System::Reflection;
using namespace System::Resources;
using namespace System::Media;

