Jak w Delphi stworzyć nowy, pusty plik wav?

0

Jak w temacie :) Chcąc coś nagrać przy pomocy komponentu MediaPlayer trzeba mieć gotowy plik wav:

  MediaPlayer.FileName := 'nowy.wav';
  MediaPlayer.Open;
  MediaPlayer.StartRecording;

Jak z poziomu Delphi stworzyć na dysku plik 'nowy.wav'? Pusty plik wav posiada jakiś tam swój nagłówek i proste stworzenie pliku w stylu Assign(wav, 'nowy.wav') nie działa.

0

U mnie taki kod jak podałeś nie działa, utworzyłem sobie jedno osekudnowy plik w GoldWave i we
właściwościach nagrywania ustawiłęm źródło jako "Stereo Mix" i nic nie nagrało mimo że WinAmp
odtwarzał muzykę. Ja bym kombinował albo tak żeby w zasobach dodać pusty plik wave i później
go przed wywołaniem nagrania zapisać na dysku. Ale prościej będzie tobie skorzysrać z bass.dll
z http://un4seen.com/download.php?bass24 - w podkatalogu Delphi\RecordTest masz źródło od
gotowego programu, który nagrywa na wybranym z listy urządzeniu i pozwala zapisac wynik do wav.

0

No właśnie upieram się przy MediaPlayerze :)

Kod działa - najprościej utworzyć nowy plik wave z menu podręcznego eksplorera (Nowy | Microsoft Wave Sound Format).

0
toffi napisał(a)

No właśnie upieram się przy MediaPlayerze :)

Kod działa - najprościej utworzyć nowy plik wave z menu podręcznego eksplorera (Nowy | Microsoft Wave Sound Format).

Ja nie mam takiej pozycji, bo Tobie dodał ją widocznie jakiś program. A skoro się upierasz przy
MediaPlayerze to w takim razie, tak jak pisałem - dodaj do zasobów pusty wygenerowany plik
wav i pozniej przed rozpoczęciem nagrywania zapisz go na dysku w rządanej lokalizacji i nagraj.

0

Wrzuciłem plik do zasobów, ale jak się do niego odwołać w kodzie programu?

0

Zasoby w EXE
A najprościej będzie tak. W pliku zasoby.rc dajesz na przykład.

nazwa_zasobu rcdata "plik.wav"

Kompilujesz przu pomocy brcc32.exe zasoby.rc A później w kodzie:

{$R zasoby.res}
var
Stream : TResourceStream;
begin
Stream := TResourceStream.Create(Hinstance, 'nazwa_zasobu', RT_RCDATA);
Stream.SaveToFile('nazwa_pliku.wav');
Stream.Free;
end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1