Como converto um sistema :: io :: stream^ para um LPCSTR para PlaySound?
Pergunta
Estou tentando incorporar e depois reproduzir um arquivo .wav em um aplicativo C ++/CLI, mas todos os exemplos que vi que usam PlaySound
estão em vb. Não consigo ver como sair de Stream^
para o LPCSTR que requer que o PlaySound requer:
System::IO::Stream^ s = Assembly::GetExecutingAssembly()->GetManifestResourceStream ("Ping.wav");
LPCSTR buf = s->????;
PlaySound(buf, NULL, SND_ASYNC|SND_MEMORY|SND_NOWAIT);
Acho que preciso de algum tipo de magia horrível da conversão de memória .NET.
Solução
Use a classe System :: Media :: SoundPlayer. Ele possui uma propriedade de fluxo, atribua sua variável "S" e ligue para o método play ().
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow