Domanda

Ci sono molti modi di riproduzione di suoni su Windows. Quali sono le differenze, vantaggi e svantaggi di ogni metodo?

So che ci sono almeno 5 metodi:

  1. WINMM.DLL / mmsys.dll PlaySound
  2. 1995 MCIWnd (come suggerito da @casablanca)
  3. DirectSound
  4. 1998 WaveOut
  5. 1999 ASIO
  6. 1999 il controllo ActiveX di Windows Media Player?
  7. WASAPI (che viene utilizzato da XAudio2 - come suggerito da @Han)
  8. XAudio2
È stato utile?

Soluzione

In realtà dipende da ciò che si vuole fare. Per la maggior parte degli scenari più comuni, ho trovato che il MCIWnd funzioni funzionano bene: sono veramente facile da usare e in grado di riprodurre qualsiasi formato per cui è installato un codec

.

DirectSound è un po 'più difficile da usare ma ti dà molto più controllo sul risultato; esso consente di aggiungere effetti speciali e simulare il posizionamento 3D.

Le funzioni waveOut sono le API di livello più basso si può raggiungere e che sono una sorta di spada a doppio taglio: si arriva a controllare esattamente ciò che accade fuori agli altoparlanti, ma accettano solo i dati delle forme d'onda prime, che significa che sono responsabile di tutti decodifica e post-elaborazione dei dati di ingresso. PlaySound fornisce essenzialmente un bel involucro intorno a questo.

Altri suggerimenti

QSound , quindi si adatta a destra dentro con il resto della tua Qt applicazione, e funzionerà, non solo su Windows ma anche su Mac OS X e Linux, pure. Non è raro trovare un'API di base, la piattaforma-specifico che non è molto amichevole per gli sviluppatori, e poi una miriade di altri sviluppatori API ambientale costruito sulla parte superiore del nucleo. Utilizzando un'API nucleo può essere trascurabile veloce, ma utilizzando gli strati in cima a questi nucleo API è quasi sempre più conveniente e gestibile, e ti protegge dalle modifiche apportate al nucleo di basso livello.

Modifica
Dalla descrizione di XAudio2 :

  

XAudio2 è un basso livello, multi-piattaforma API audio per Microsoft Windows e Xbox 360. Esso fornisce un'elaborazione del segnale e la miscelazione basi per i giochi che è simile ai suoi predecessori, DirectSound e XAudio. Per gli sviluppatori di giochi di Windows, XAudio2 è la sostituzione a lungo atteso per DirectSound.

Quindi, sembra che sarebbe l'API per l'uso, se si vuole un nucleo, libreria audio specifico per la piattaforma.

Modifica 2
Ero un po 'veloce con la mia prima risposta ... in realtà, dipende da cosa si vuole fare. Se tutto quello che vogliamo fare è riprodurre un file audio, quindi QSound è la strada da percorrere. Se, invece, volete mescolare e generare l'audio al volo, poi con un più funzionalità in grado biblioteca come XAudio2 (che è una parte di DirectX ed è destinato per la creazione del suono come parte dei videogiochi) sarebbe il modo per andare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top