Как мне создать пустой wav-файл? Это просто пустой двоичный
файл?
The TMediaPlayer может открыть звуковой файл, если он содержит, по крайней
мере, один байт данных. Я обнаружил это, когда с помощью данного компонента
пытался создать и открыть звуковой файл, содержащий только заголовок звукового
файла. The TMediaplayer не захотел этого делать.
Нижеприведенный код создаст звуковой файл размером 1 байт. Конечно это криво,
но это работает. Вам необходимо лишь добавить MMSYSTEM ко всем модулям,
использующим данную функцию.
Как мне очистить содержимое Wav-файла? Просто заново создать
пустой?
Вот небольшой компонент, позволяющий стирать любую часть wave-файла:
unit Nickmp;
interfaceuses
SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
Forms, Dialogs, MPlayer, MMSystem;
type
TNickMediaPlayer = class(TMediaPlayer)
private{ Private declarations }protected{ Protected declarations }public{ Public declarations }function DeleteWaveChunk(aFrom, aTo: LongInt): Longint;
published{ Published declarations }end;
procedureRegister;
implementationprocedureRegister;
begin
RegisterComponents('Samples', [TNickMediaPlayer]);
end;
function TNickMediaPlayer.DeleteWaveChunk(aFrom, aTo: LongInt): Longint;
var
DeleteParms: TMCI_WAVE_DELETE_PARMS;
Flags: LongInt;
begin
Flags := 0;
if Wait then
Flags := mci_Wait;
if Notify then
Flags := Flags or mci_Notify;
DeleteParms.dwCallback := Handle;
Flags := Flags or mci_From;
DeleteParms.dwFrom := aFrom;
Flags := Flags or mci_To;
DeleteParms.dwTo := aTo;
Result := mciSendCommand(DeviceID, mci_Delete, Flags, Longint(@DeleteParms));
end;
end.
Статья Создание пустого wav-файла раздела Мультимедиа Аудио может быть полезна для разработчиков на Delphi и FreePascal.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.