Войти

Показать полную графическую версию : [решено] Запуск аудио-файлов *.mp4 с помощью ShellExecute


Professor_J.C.
12-11-2010, 19:41
Здравствуйте,
я разрабатываю программу Moskva.fm Grabber (http://forum.oszone.net/thread-180032.html) которая загружает эфиры радиостанций и формате mp4 (аудио). Одна из функций программы заключается в воспроизведении созданного файла по нажатию кнопки. Код обработчика события выглядит следующим образом:

procedure TMainForm.PlayBtnClick(Sender: TObject);
var
PlayP: string;
begin
PlayP:=Copy(Play, 2, Length(Play)-2); //убираем двойные кавычки вокруг пути
ShellExecute(Handle, nil, pchar(PlayP), nil, nil, SW_RESTORE);
end;

На сколько я знаю, ShellExecute должен выполнить дефолтное действие над файлом в сопоставленной этому расширению программе, но на практике не происходит ничего.
Путь проверял неоднократно, он всегда передается корректно.
Как запустить воспроизведение mp4-файла в сопоставленном ему приложении?

Admiral
12-11-2010, 21:32
Professor_J.C. зависит от системы. Желательно указать требуемое действие "open" во втором параметре ShellExecute().

Delirium
13-11-2010, 00:42
Хм. А не проще взять тот же AIMP, загрузить в него путь до радиостанции и сграббить эфир? Это я к тому, что подобный функционал уже реализован в другом ПО.

Professor_J.C.
13-11-2010, 07:20
Delirium, не проще, ибо такой метод позволяет сохранить только прямой эфир (он интересует меня меньше всего), да и специфика источника (минутные файлы с "нахлестом" 2 секунды) не позволят получить вменяемый результат средствами вроде AIMP.

Professor_J.C.
13-11-2010, 07:45
Все-таки нашел ошибку в пути. Она была плохо различима. Теперь все работает.




© OSzone.net 2001-2012