![]() |
|
|
#1
|
|||
|
|||
|
Здравствуйте! Столкнулся с проблемой. Хочу сделать быстрый конвертер MP3 to WAV. Но проблема в компоненте. Я его установил, еще он писал, что некоторые файлы не найдены. Я их из папки с компонентом перенес в LIB. Вроде бы все нормально, то при запуске программы открывается файл компонента и выдает ошибку. Вот код программы, а ниже скрин ошибки. Причем ошибка появляется уже в процессе сохранения wav, открытие mp3 проходит без ошибки. Помогите!!!
КОД: Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ACS_Classes, ACS_WinMedia, ACS_smpeg, StdCtrls,
ACS_Wave;
type
TForm1 = class(TForm)
Button1: TButton;
MP3In1: TMP3In;
ProgressBar1: TProgressBar;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
WaveOut1: TWaveOut;
procedure Button1Click(Sender: TObject);
procedure WaveOut1Done(Sender: TComponent);
procedure WaveOut1Progress(Sender: TComponent);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
MP3In1.FileName := OpenDialog1.FileName;
SaveDialog1.FileName := ChangeFileExt(MP3In1.FileName, '.wav');
if SaveDialog1.Execute then
begin
WaveOut1.FileName := SaveDialog1.FileName;
Button1.Enabled := False;
WaveOut1.Run;
end;
end;
end;
procedure TForm1.WaveOut1Done(Sender: TComponent);
begin
Button1.Enabled := True;
end;
procedure TForm1.WaveOut1Progress(Sender: TComponent);
begin
ProgressBar1.Position := WaveOut1.Progress;
end;
end.Скрин ошибки: |
|
#2
|
||||
|
||||
|
Вот по ошибке смотри:
Код:
if not Assigned(fInput) then raise... |
|
#3
|
|||
|
|||
|
Цитата:
|
|
#4
|
||||
|
||||
|
Что тут понимать? В Object Inspector'е у компонента WaveOut1 (если ты его кидаешь на форму) в свойстве Input из выпадающего меню выбери MP3In1.
Или же в OnCreate главной формы напиши Код:
WaveOut1.Input:=MP3In1; |
| Этот пользователь сказал Спасибо YVitaliy за это полезное сообщение: | ||
Dmitry_DM (07.09.2012)
| ||
|
#5
|
|||
|
|||
|
Цитата:
Теперь этой ошибки нету. Но появилась следующая. Непонятного происхождения. Текст ошибки на 1 скрине. Сразу хочу сказать, что я уже выбирал файл, указывал путь.. Все время неисправимая ошибка. Но уже близится успешное быстрое конвертирование. P.S. Я разрабатываю настройки программы. Какие функции туда можно вставить.(Ваши рекомендации). Но самое главное: все же исправить ошибку с компонентом. И еще одно: ни кто не сталкивался с этим компонентом. Что он еще может? |
|
#6
|
|||
|
|||
|
Так кто-нибудь знает что делать с проблемой, описанной выше?
|
|
#7
|
||||
|
||||
|
Цитата:
|
|
#8
|
|||
|
|||
|
Цитата:
|
|
#9
|
||||
|
||||
|
Цитата:
Цитата:
|
|
#10
|
|||
|
|||
|
Цитата:
![]() |
|
#11
|
|||
|
|||
|
Короче я так понял ничего не выйдет с NewAc library. Может есть какие - нибудь другие способы сконвертировать mp3 to wav? Допустим, с помощью bass.dll. Если есть такая возможность, подскажите как реализовать.
|
|
#12
|
||||
|
||||
|
Цитата:
Код:
...
unit mr_cddb;
...
function ExtractCharSetFromPageContent(fBuffer: string): string;
...
var
CutBuffer: TStringList;
posDelim: Integer;
strEnum: string;
begin
...
for strEnum in CutBuffer do
if (Pos(c_charset, strEnum) > 0) then
begin
Result := Copy(strEnum,
Pos('=', strEnum) + 1,
Length(strEnum));
end;
...
end;
...![]() Заменил это место на такое: Код:
var
CutBuffer: TStringList;
posDelim, i: Integer;
strEnum: string;
begin
...
for i := 0 to CutBuffer.Count-1 do
begin
strEnum := CutBuffer[i];
if (Pos(c_charset, strEnum) > 0) then
begin
Result := Copy(strEnum,
Pos('=', strEnum) + 1,
Length(strEnum));
end;
end;
...
end;
...Вместе с компонентами идут также и примеры. Вот даже в папке: newac261\demos\Converters\MP3Converter есть пример конвертации mp3-файлов в wav-фалы. Проверил - нормально конвертирует, так что я что-то не пойму какие тут у тебя могут возникнуть проблемы? p.s. С библиотекой bass не работал. Говорят, что это очень хорошая и мощная библиотека, и даже бесплатная для некоммерческих проектов. Но к сожалению у меня с ней что-то не срослось, возможно то, что она всё же не полностью FreeWare. И хотя у меня есть в планах изучить работу с этой популярной библиотекой, но эти планы регулярно отодвигаются для более интересных проектов... ![]() |
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Dmitry_DM (09.09.2012)
| ||
|
#13
|
|||
|
|||
|
Цитата:
К стати, может вы помните, я делал плеер на mediaplayer1, а теперь переделал на bass.dll. Очень круто!! |
|
#14
|
|||
|
|||
|
Все! Работает и на NewAC 2.4.1. Еще раз спасибо. Я понятия не имею в чем там была проблема, но теперь ее нет.
![]() Тема закрыта. |