Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Razangann
12 / 12 / 0
Регистрация: 11.01.2013
Сообщений: 135
#1

Выбор устройства для записи (BASS lib) - C++

23.01.2013, 23:37. Просмотров 855. Ответов 13
Метки нет (Все метки)

Ребят, как выбрать устройство, чтобы работать с ним в BASS.DLL? Например функция BASS_RecordInit по умолчанию выбирает "Массив встр. микрофона". Как правильно вызвать эту функцию, чтобы выбиралось другое устройство? Мне нужно выбрать "Громкоговорители и головные телефоны" в windows 7. Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2013, 23:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выбор устройства для записи (BASS lib) (C++):

Как в VS 2015 устранить ошибку LNK 1104 cannot open file 'fltkd.lib wsock32.lib comct132.lib fltkjpegd.lib'? - C++
как устранить ошибку LNK 1104 в visual studio community 2015? пункта C/C++ в properties нету Можете сказать куда его перенесли или...

Фиксация длины буфера записи в bass.dll - C++
Здравствуйте. Очень стараюсь найти решение моей проблемы с bass.dll. Моя программа считывает звук с микрофона и обрабатывает его....

В каком SDK находятся библиотечные файлы Urlmon.lib winmm.lib - C++
В каком SDK находятся библиотечные файлы Urlmon.lib winmm.lib? Я предполагал что в Direct SDK(у меня DirectX SDK 2006), однако там не...

64-битная версия vcomp.lib и vcompd.lib из Visual Studio 2010 - C++
Здравствуйте. Встала проблема скомпилировать 64-битное приложение с поддержкой OpenMP. В силу рада обстоятельств вынужден использовать...

Библиотеки glut.lib и glut32.lib не могу найти - C++
Здравствуйте товарищи, помогите с очередной дилеммой. На днях начал изучать программирование, скачал Dav C++, но для дальнейших уроков...

Linker error msvcprtd.lib(msvcp100d.dll) error lnk2005 already defined libcpmtd.lib - C++
Господа, забрал из VSS солюшен (из 5 проектов) для VS2010 и стал его собирать. Увлекательный квест "собери меня" через неделю (с...

13
MikeSoft
Эксперт С++
3802 / 1778 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
24.01.2013, 11:41 #2
Razangann, функция BASS_RecordInit принимает порядковый номер устройства.
Получить список всех устройств можно с помощью функции BASS_RecordGetDeviceInfo.
Собственно говоря, пример использования есть на официальном сайте проекта: BASS
1
Razangann
12 / 12 / 0
Регистрация: 11.01.2013
Сообщений: 135
24.01.2013, 12:14  [ТС] #3
В том то и дело, что доступны только устройства записи, встр. микрофон и внешний микрофон... А как выбрать устройство воспроизведения???
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
24.01.2013, 12:31 #4
Razangann, эм, Вам само название ничего не говорит? Ну хотя бы слово Record? http://www.un4seen.com/doc/#bass/BASS_GetDeviceInfo.html
0
SoftIce
comment ca va
10256 / 3767 / 967
Регистрация: 27.07.2011
Сообщений: 9,109
Завершенные тесты: 1
29.11.2017, 14:09 #5
Подниму старую тему.
Цитата Сообщение от Razangann Посмотреть сообщение
как выбрать устройство, чтобы работать с ним в BASS.DLL?
У меня такой же вопрос.

Цитата Сообщение от MikeSoft Посмотреть сообщение
Получить список всех устройств можно с помощью функции BASS_RecordGetDeviceInfo.
Функция BASS_RecordGetDeviceInfo возвращает только микрофон.
0
Миниатюры
Выбор устройства для записи (BASS lib)  
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
29.11.2017, 14:13 #6
Ну название функции говорит само за себя. Я не работал с BASS, но в документации по API можно увидеть, что для устройств воспроизведения используется функция BASS_GetDeviceInfo.

EDIT: Что собственно я и написал в предыдущем сообщении 4 с лишним года назад.
0
SoftIce
comment ca va
10256 / 3767 / 967
Регистрация: 27.07.2011
Сообщений: 9,109
Завершенные тесты: 1
30.11.2017, 08:38 #7
Цитата Сообщение от Toshkarik Посмотреть сообщение
Ну название функции говорит само за себя.
Очень хорошо, пусть говорит.
Цитата Сообщение от Toshkarik Посмотреть сообщение
для устройств воспроизведения
Для воспроизведения нет проблем. Но мне нужно для записи.


Цитата Сообщение от Toshkarik Посмотреть сообщение
Что собственно я и написал в предыдущем сообщении 4 с лишним года назад.
Тема 4 года называется Выбор устройства для записи.
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
30.11.2017, 09:21 #8
Цитата Сообщение от SoftIce Посмотреть сообщение
Очень хорошо, пусть говорит.
И я про то же.

Из Вашего сообщения
Цитата Сообщение от SoftIce Посмотреть сообщение
Функция BASS_RecordGetDeviceInfo возвращает только микрофон.
ясно лишь то, что Вам нужен НЕ микрофон. Если бы Вы написали, что необходим, например, линейный вход или что то другое, то сразу было бы понятно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
    BASS device list example
    Copyright (c) 2014 Un4seen Developments Ltd.
*/
 
#include <stdio.h>
#include "bass.h"
 
void DisplayDeviceInfo(BASS_DEVICEINFO *di)
{
    printf("%s\n\tdriver: %s\n\ttype: ",di->name,di->driver);
    switch (di->flags&BASS_DEVICE_TYPE_MASK) {
        case BASS_DEVICE_TYPE_NETWORK:
            printf("Remote Network");
            break;
        case BASS_DEVICE_TYPE_SPEAKERS:
            printf("Speakers");
            break;
        case BASS_DEVICE_TYPE_LINE:
            printf("Line");
            break;
        case BASS_DEVICE_TYPE_HEADPHONES:
            printf("Headphones");
            break;
        case BASS_DEVICE_TYPE_MICROPHONE: 
            printf("Microphone");
            break;
        case BASS_DEVICE_TYPE_HEADSET:
            printf("Headset");
            break;
        case BASS_DEVICE_TYPE_HANDSET:
            printf("Handset");
            break;
        case BASS_DEVICE_TYPE_DIGITAL:
            printf("Digital");
            break;
        case BASS_DEVICE_TYPE_SPDIF:
            printf("SPDIF");
            break;
        case BASS_DEVICE_TYPE_HDMI:
            printf("HDMI");
            break;
        case BASS_DEVICE_TYPE_DISPLAYPORT:
            printf("DisplayPort");
            break;
        default:
            printf("Unknown");
    }
    printf("\n\tflags:");
    if (di->flags&BASS_DEVICE_ENABLED) printf(" enabled");
    if (di->flags&BASS_DEVICE_DEFAULT) printf(" default");
    printf(" (%x)\n",di->flags);
}
 
void main()
{
    BASS_DEVICEINFO di;
    int a;
    printf("Output Devices\n");
    for (a=1;BASS_GetDeviceInfo(a,&di);a++) {
        printf("%d: ",a);
        DisplayDeviceInfo(&di);
    }
    printf("\nInput Devices\n");
    for (a=0;BASS_RecordGetDeviceInfo(a,&di);a++) {
        printf("%d: ",a);
        DisplayDeviceInfo(&di);
    }
}
Код взят из архива, скаченного с оф. сайта библиотеки. Если Вы уверены, что список не полный, но функция все же возвращает 0, то смотрите на последний код ошибки функцией BASS_ErrorGetCode. У меня код отработал и показал все устройства.
1
Миниатюры
Выбор устройства для записи (BASS lib)  
SoftIce
comment ca va
10256 / 3767 / 967
Регистрация: 27.07.2011
Сообщений: 9,109
Завершенные тесты: 1
30.11.2017, 09:39 #9
Toshkarik, спасибо, понятно, я так и делал. Значит у меня доступна запись только с микрофона.

Только начинаю с этим разбираться. Я просто хотел записывать то, что у меня звучит в динамиках.
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
30.11.2017, 11:46 #10
Для этого обычно используется устройство what-u-hear. Наличие зависит от звуковой карты. На рабочем ноуте встроенный realtek, там нет такого, но есть stereo mix, что, вроде, очень похоже по функциональности. Дома creative x-fi, там же есть what-u-hear, но нет stereo mix. Как видно на скрине, у Вас тоже realtek. Значит должно быть устройство stereo mix. Оно выключено по умолчанию, попробуйте его включить и еще раз запустить программу. Она должна будет увидеть второе устройство.
1
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
30.11.2017, 11:49 #11
У меня вот так получилось на ноуте
1
Миниатюры
Выбор устройства для записи (BASS lib)  
SoftIce
comment ca va
10256 / 3767 / 967
Регистрация: 27.07.2011
Сообщений: 9,109
Завершенные тесты: 1
30.11.2017, 12:07 #12
Цитата Сообщение от Toshkarik Посмотреть сообщение
Значит должно быть устройство stereo mix
Windows показывает тоже только микрофон, он же по умолчанию выбран для записи.
0
Миниатюры
Выбор устройства для записи (BASS lib)  
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
30.11.2017, 12:11 #13
А если правой кнопкой кликнуть, там выбран пункт "Отображать отключенные устройства"? Если его нет, то, видимо, звуковая карта/драйвер не поддерживает.
1
Миниатюры
Выбор устройства для записи (BASS lib)  
SoftIce
comment ca va
10256 / 3767 / 967
Регистрация: 27.07.2011
Сообщений: 9,109
Завершенные тесты: 1
30.11.2017, 12:22 #14
Toshkarik, попёрло . Спасибо большое за помощь.
0
Миниатюры
Выбор устройства для записи (BASS lib)  
30.11.2017, 12:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2017, 12:22
Привет! Вот еще темы с ответами:

Что нужно знать для программирования в Bass - C++
Приветствую всех. Подскажите плз, какие знания нужно иметь для bass работы с 2д и 3д звуком? В плане математики. С математикой туго, но...

Написать функции для чтения/записи отдельных бит для любой записи из данного набора - C++
Начиная с адреса А в памяти МК находятся N записей длиной k бит каждая. Записи выровнены по границе слова. Написать функции для...

Как создать header для lib библиотеки? - C++
Необходимо подключить lib библиотеку к проекту. Сама библиотека получена путем перекодирования из dll утилитой implib. Необходим .h...

Куда закинуть bass.dll,bass.h,bass.lib - C++ Builder
Ребят, пересмотрел темы на форуме, гуглил, толком ничего не нашел. Собственно такая проблема, вот я скачал архив bass.zip, в нем находится...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.