![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Есть комп с двумя звуковухами, нужно сделать прогу которая предоставляет пользователю выбор на какую аудиокарту выводить звук, и еще интересует возможность на две сразу разные звуки...заранее спасибо
|
|
#2
|
|||
|
|||
|
выбор усторйства bass dll умеет
когда вижу слова "нужно сделать прогу" почему-то думаю, что автор вообще не знает во что ввязывается |
|
#3
|
|||
|
|||
|
Цитата:
|
|
#4
|
||||
|
||||
|
пишем в гугл bass, идем по первой ссылке, скачиваем архив для вин, в примерах находим
Код:
procedure TForm2.FormCreate(Sender: TObject);
var
i: Integer;
ADeviceInfo: BASS_DEVICEINFO;
begin
i := 1;
while BASS_GetDeviceInfo(I, ADeviceInfo) do
begin
ListBox1.Items.Add(ADeviceInfo.name);
i := i + 1;
end;
end; |
| Этот пользователь сказал Спасибо cotseec за это полезное сообщение: | ||
mikesunrise (15.08.2012)
| ||
|
#5
|
|||
|
|||
|
Цитата:
работает, спасибо ![]() извини конечно, я новичок в этом, а как все таки проиграть звук?буду оооочень благодарен) |
|
#6
|
||||
|
||||
|
Например:
Код:
chan := BASS_StreamCreateFile(False, PChar(FileName), 0, 0, BASS_SAMPLE_LOOP); BASS_ChannelPlay(chan, False); |
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
mikesunrise (15.08.2012)
| ||
|
#7
|
|||
|
|||
|
Цитата:
какой тип переменной chan? |
|
#8
|
||||
|
||||
|
Всё-таки примеры посмотри - DWORD.
|
| Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
mikesunrise (16.08.2012)
| ||
|
#9
|
|||
|
|||
|
Вот сама программа, с выбором звуковой проблемы не исчезли
во первых не видит мою эмулированную звуковуху Virtual Audio Cable,во-вторых - во время проигрывания азбуки морзе не возможно двигать окно и запускать другой режим работы. САМАЯ АКТУАЛЬНАЯ ПРОБЛЕМА НА ДАННОМ ЭТАПЕ - ВЫБОР АУДИОКАРТЫ. Помогите пожалуйста с кодом, сам не могу разобраться...заранее спасибо![]() |
|
#10
|
|||
|
|||
|
выбирает первый попавшийся кабель
Код:
function virtual_cable: integer;
var i, n, r: integer;
m: HMIXER;
d: MIXERCAPS;
name: string;
begin
n := mixerGetNumDevs;
result := -1;
for i := 0 to n - 1 do
begin
r := mixerOpen(@m, i, 0, 0, 0);
r := mixerGetDevCaps(m, @d, sizeof(d));
name := LowerCase(StrPas(d.szPname));
if (pos('virtual', name) <> 0) and (pos('cable', name) <> 0) then begin
result := i + 1; break;
end;
end;
end;
//...
device := virtual_cable;
if not BASS_Init(device, 44100, 0, Handle, nil) then
|
| Этот пользователь сказал Спасибо Pyro за это полезное сообщение: | ||
mikesunrise (16.08.2012)
| ||
|
#11
|
|||
|
|||
|
а на примере моей программы?
|
|
#12
|
||||
|
||||
|
на примере вашей программы.....
функция Beep() выводит звук на встроенный спикер (штатный динамик компьютера) и к звуковым платам не имеет никакого отношения, хотя музыку на спикере можно поиграть, в DOS шедевры получались у умельцев..... в вашем случае: либо найти два звуковых файлика для озвучки точки и тире и их проигрывать соответственно либо два массива заполнить соответствующими данными и кормить ими выбранную звуковую карточку в соответствии с точками тире оба пункта возможны как через bass так и через стандартный микшер (юнит MMSystem) а по поводу списка звуковых плат все сказано выше иногда можно почитать что-либо и посмотреть какие-либо примеры (все это также дано было выше) Последний раз редактировалось cotseec, 16.08.2012 в 22:30. |