Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2011, 03:46   #1
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
Стрелка mciSendString(PChar(Cmd), nil, 0, 0); проблема с пробелами в пути к файлу

Код:
procedure TForm1.SendMCICommand(Cmd: string);
var
  RetVal: Integer;
  ErrMsg: array[0..254] of char;
begin
  RetVal := mciSendString(PChar(Cmd), nil, 0, 0);
  if RetVal <> 0 then
  begin
    {get message for returned value}
    mciGetErrorString(RetVal, ErrMsg, 255);
    MessageDlg(StrPas(ErrMsg), mtError, [mbOK], 0);
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  SendMCICommand('open waveaudio shareable');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SendMCICommand('play "C:\NewFolder\NewSound.wav"');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  SendMCICommand('play "C:\New Folder\New Sound.wav"');
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  SendMCICommand('close waveaudio');
end;
Первая кнопка проигрывает, а вторая ошибка:
Цитата:
Указанное устройство не открыто или не опознаётся интерфейсом MCI.
Что можно зделать, что бы исправить это?

П.С. путей без пробелов избежать не удастся.
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 24.12.2011, 03:54   #2
Lasur
Форумчанин
 
Аватар для Lasur
 
Регистрация: 13.10.2011
Сообщений: 143
По умолчанию

Тут предлагаются два метода решения. Попробуй, может поможет.
Все имена, фамилии, ники, даты и события упоминаемые в моих постах, являются вымышленными. Все совпадения с реально существующими - случайны.
Lasur вне форума Ответить с цитированием
Старый 24.12.2011, 04:01   #3
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

Спасибо, я это видел, но мне нужна именно эта функция, для одновременного воспроизведения двух звуков
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 24.12.2011, 04:14   #4
Lasur
Форумчанин
 
Аватар для Lasur
 
Регистрация: 13.10.2011
Сообщений: 143
По умолчанию

_ вместо пробелов пробовал?
Все имена, фамилии, ники, даты и события упоминаемые в моих постах, являются вымышленными. Все совпадения с реально существующими - случайны.
Lasur вне форума Ответить с цитированием
Старый 24.12.2011, 04:37   #5
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

так в том то и дело, я ведь не смогу пользователям запретить пути с пробелами ...
VirusN13
ArtGrek вне форума Ответить с цитированием
Старый 24.12.2011, 05:00   #6
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Какой-то у вас странный синтаксис команд. Документация говорит иное.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 24.12.2011, 05:07   #7
ArtGrek
DelphiProger
Участник клуба
 
Аватар для ArtGrek
 
Регистрация: 14.11.2010
Сообщений: 1,023
По умолчанию

хм, что я не понял
код есть на многих сайтах, говорят что работает, это так и есть, но с пробелами проблема

GunSmoker
то что вы дали я перевел и прочёл, но пока не соображу о чем вы
VirusN13

Последний раз редактировалось ArtGrek; 24.12.2011 в 05:15.
ArtGrek вне форума Ответить с цитированием
Старый 24.12.2011, 05:23   #8
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

MCI - это динозавр. Он разработан в далёкие времена даже не 16-битных Windows, а OS/2 и работает по её логике.

Там нет даже семантики DOS с кавычками.

Ему не пришёл капут в Windows практически по одной причине: это удобный способ закрывать и открывать лоток CD. Я почти 100% серьёзно. Это сказал разработчик аудио-подсистемы Windows.

Итого, я бы посмотрел в сторону чего понормальнее.

Но если охота с MCI - см. в сторону команды open и определения псевдонима для файла (alias). Тогда в play будет указываться alias. Не уверен, что там с путями.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 02.08.2016, 15:54   #9
Dimo10xs
 
Регистрация: 05.02.2011
Сообщений: 3
По умолчанию

Используй GetShortPathName чтобы получить короткий путь
Dimo10xs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пробелы в пути к файлу royun Общие вопросы Delphi 5 28.10.2011 05:02
VB. Определение пути в файлу KillJoy Помощь студентам 2 08.10.2010 20:51
Получение пути к файлу из ListBox artemavd Общие вопросы Delphi 8 07.08.2010 15:27
изменение пути к файлу Обыватель Microsoft Office Excel 2 30.09.2008 13:16
Определение пути к файлу Pinya Общие вопросы Delphi 1 07.08.2008 12:22