7
votes

Quel est le moyen le plus simple de jouer au son des données de tableau dans Delphes

Y a-t-il une fonction simple? Je cherche quelque chose comme ça

jouer (@DATA, 44000, 100 {TIME});


0 commentaires

5 Réponses :


2
votes

Microsoft a un Article de la base de connaissances Vous dire comment jouer au son de la mémoire à l'aide de MCI . Vous aurez probablement besoin d'avoir l'en-tête de fichier Wave dans votre tableau ou de copier autrement dans les bonnes données lors de la première lecture, mais autre que cela devrait être assez facile à porter.


0 commentaires

4
votes

Wave Audio Package a un composant TLIVAUDIUPLAYER. Il joue audio de tampon.


2 commentaires

Oui ça marche pour moi aussi. et la bonne chose, pas de composants externes comme Bass.dll boit.exe, etc.


Je pense que cette réponse aurait dû être marquée comme la meilleure.



3
votes

L'API Win32 Fonction PlaySound peut lire Standard Riff-codé. Audio (tel que l'audio WAV) à partir d'un bloc de mémoire en utilisant son snd_memory drapeau. Sinon, si l'audio est dans les ressources de l'application, vous pouvez utiliser le drapeau snd_resource à la place.


0 commentaires

7
votes

J'ai beaucoup travaillé avec la manipulation audio PCM. J'utilise toujours cette fonction lors de la lecture de séquences courtes de données audio de forme d'onde personnalisée: xxx

xxx

Un meilleur moyen, est d'utiliser Un fil pour le jeu. Ensuite, je fais xxx

implémenté comme xxx


1 commentaires

J'aimerais vous demander plus de PCMS. Ceci est mon e-ajouter xbasic300@yahoo.com J'ai besoin de votre aide.



0
votes

Je n'ai pas trouvé de solution complète qui n'est pas basée sur le SnDPlayPlaySound obsolète. Voici donc deux fonctions qui jouent des fichiers ".wav" à partir d'une tmemorystream et d'un fichier:

uses mmsystem;

procedure PlaySoundFromFile(FileName : String);
var
  mStream : TMemoryStream;
begin
  mStream := TMemoryStream.Create;
  Try mStream.LoadFromFile(FileName); Except End;
  If mStream.Size > 0 then PlaySoundFromStream(mStream);
  mStream.Free;
end;

procedure PlaySoundFromStream(mStream : TMemoryStream);
begin
  PlaySound(mStream.Memory,0,SND_MEMORY or SND_SYNC);
end;


0 commentaires