139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
1

Как задать звук в консоли

05.10.2011, 09:33. Показов 20303. Ответов 11
Метки нет (Все метки)

Не как не могу найти функцию которая воспроизводить стандартный звук из колонок
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2011, 09:33
Ответы с готовыми решениями:

Как задать положение консоли с++
Я долго искал способ(на этом форуме и не только) как сделать, так чтобы консоль открывалась в...

Снимать звук с микрофона и воспроизводить звук из консоли
Гуру, подскажите, тяжело ли подобное? Накапливать в буферах, обрабатывать и воспроизводить...

Как задать размер окна консоли (Windows)?
Хочу что-бы при запуске кода в консоли, окно консоли принимало статичный указанный размер в...

Как задать цвет одного символа в консоли?
итак рисую символ cor.X = (SHORT)j; cor.Y = (SHORT)i; ...

11
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
11713 / 7220 / 1710
Регистрация: 25.07.2009
Сообщений: 13,221
05.10.2011, 10:28 2
C
1
printf("\a");
0
Заблокирован
Автор FAQ
05.10.2011, 14:13 3
Цитата Сообщение от Sylar9 Посмотреть сообщение
Не как не могу найти функцию которая воспроизводить стандартный звук из колонок
- решил привести пример игры системным динамиком Beep, звука от системы MessageBeep (тут уже внешние динамики нужны) а также проигрывания медиа-файла который выбираем на жестком
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
#include <windows.h>
#include <shlobj.h>  //Диалог выбора файла
#include <mmsystem.h>//sndPlaySound
#include <stdio.h>
#include <conio.h>   //getch
 
#pragma comment(lib,"winmm.lib")//sndPlaySound
 
char * SelFile(HWND hWnd);
 
 
int main()
{
    printf("Beep - direct system dynamic play\r\n");
    const DWORD note[] = {
            0x11, 0x22, 0xF2, 0x2F, 0xAA, 0xBB, 0xCC, 0xEE, 0x29, 0x19, 0xFF
     };
    //Возможности Beep
    for(int i = 0; i < sizeof(note) / sizeof(DWORD); i++)
         Beep(note[i], 500U);
    char szFilePath[256];
    HWND hWnd = GetForegroundWindow();//Находим дескриптор окна консоли
    do
    {
        if(!strcpy(szFilePath,SelFile(hWnd)))
            printf("File not selected\r\n");
        else
        {
            //Возможности MessageBeep
            //Можно использоовать также
            //MB_ICONHAND
            //MB_ICONQUESTION
            //MB_ICONEXCLAMATION
            //MB_ICONASTERISK
            printf("MessageBeep - system exclamation\r\n");
            system("pause");
            MessageBeep(MB_ICONEXCLAMATION);
            
            printf("sndPlaySound - playing file on hard disk\r\n");
            system("pause");
            sndPlaySound(szFilePath,SND_ASYNC);
        }
        printf("Press Y for new selection\r\n");
    }
    while(toupper(getch()) == 'Y');
    system("pause");
    return 0;
}
 
char * SelFile(HWND hWnd)
{
    ShowWindow(hWnd,SW_HIDE);
    char sPath[MAX_PATH];sPath[0] = '\0';
    LPCITEMIDLIST lpItemDList;
    BROWSEINFO bi = {NULL, NULL, sPath,
       "Выберите медиа файл",
        BIF_DONTGOBELOWDOMAIN|BIF_BROWSEINCLUDEFILES,
        NULL,
        NULL,
        0
    };
    if((lpItemDList = SHBrowseForFolder(&bi)))
    {
        if(SHGetPathFromIDList(lpItemDList, sPath))
            GetShortPathName((LPCTSTR)sPath,sPath,strlen(sPath));
    }
    ShowWindow(hWnd,SW_SHOW);
    return &sPath[0];
}
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
05.10.2011, 14:56  [ТС] 4
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- решил привести пример игры системным динамиком Beep, звука от системы MessageBeep (тут уже внешние динамики нужны) а также проигрывания медиа-файла который выбираем на жестком
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
#include <windows.h>
#include <shlobj.h>  //Диалог выбора файла
#include <mmsystem.h>//sndPlaySound
#include <stdio.h>
#include <conio.h>   //getch
 
#pragma comment(lib,"winmm.lib")//sndPlaySound
 
char * SelFile(HWND hWnd);
 
 
int main()
{
    printf("Beep - direct system dynamic play\r\n");
    const DWORD note[] = {
            0x11, 0x22, 0xF2, 0x2F, 0xAA, 0xBB, 0xCC, 0xEE, 0x29, 0x19, 0xFF
     };
    //Возможности Beep
    for(int i = 0; i < sizeof(note) / sizeof(DWORD); i++)
         Beep(note[i], 500U);
    char szFilePath[256];
    HWND hWnd = GetForegroundWindow();//Находим дескриптор окна консоли
    do
    {
        if(!strcpy(szFilePath,SelFile(hWnd)))
            printf("File not selected\r\n");
        else
        {
            //Возможности MessageBeep
            //Можно использоовать также
            //MB_ICONHAND
            //MB_ICONQUESTION
            //MB_ICONEXCLAMATION
            //MB_ICONASTERISK
            printf("MessageBeep - system exclamation\r\n");
            system("pause");
            MessageBeep(MB_ICONEXCLAMATION);
            
            printf("sndPlaySound - playing file on hard disk\r\n");
            system("pause");
            sndPlaySound(szFilePath,SND_ASYNC);
        }
        printf("Press Y for new selection\r\n");
    }
    while(toupper(getch()) == 'Y');
    system("pause");
    return 0;
}
 
char * SelFile(HWND hWnd)
{
    ShowWindow(hWnd,SW_HIDE);
    char sPath[MAX_PATH];sPath[0] = '\0';
    LPCITEMIDLIST lpItemDList;
    BROWSEINFO bi = {NULL, NULL, sPath,
       "Выберите медиа файл",
        BIF_DONTGOBELOWDOMAIN|BIF_BROWSEINCLUDEFILES,
        NULL,
        NULL,
        0
    };
    if((lpItemDList = SHBrowseForFolder(&bi)))
    {
        if(SHGetPathFromIDList(lpItemDList, sPath))
            GetShortPathName((LPCTSTR)sPath,sPath,strlen(sPath));
    }
    ShowWindow(hWnd,SW_SHOW);
    return &sPath[0];
}
У меня ошибку выбвает при компиляции вот ошибка fatal error C1010: unexpected end of file while looking for precompiled header directive
0
Заблокирован
Автор FAQ
05.10.2011, 15:21 5
Цитата Сообщение от Sylar9 Посмотреть сообщение
У меня ошибку выбвает при компиляции вот ошибка fatal error C1010: unexpected end of file while looking for precompiled header directive
- проект 100% компилируется и работает тоже, значит дело в компиляторе - в чём пишем???
Log Debug
Deleting intermediate files and output files for project 'snd - Win32 Debug'.
--------------------Configuration: snd - Win32 Debug--------------------
Compiling...
snd.cpp
Linking...
Creating browse info file...

snd.exe - 0 error(s), 0 warning(s)
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
06.10.2011, 08:33  [ТС] 6
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- проект 100% компилируется и работает тоже, значит дело в компиляторе - в чём пишем???
Log Debug
Deleting intermediate files and output files for project 'snd - Win32 Debug'.
--------------------Configuration: snd - Win32 Debug--------------------
Compiling...
snd.cpp
Linking...
Creating browse info file...

snd.exe - 0 error(s), 0 warning(s)
В майкрософт визал 6,0 с++
0
Заблокирован
Автор FAQ
06.10.2011, 09:31 7
Цитата Сообщение от Sylar9 Посмотреть сообщение
В майкрософт визал 6,0 с++
, это проект написан именно в 6-ке, единственным моим предположением является отсутствие в вашей инсталляции каких либо библиортек, как вариант давайте попробуем вычленить ошибку, предлагаю последовательно провести компиляцию частей программы, на каком то этапе у вас появиться ваш зловещий fatal error C1010 - я конечно грешу что при копипасти кода вы скобочку потеряли(ну не докопировали - ошибка на данный вариант похожа), тем не менее запишите код так
Beep
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <windows.h>
#include <stdio.h>
 
int main()
{
    printf("Beep - direct system dynamic play\r\n");
    const DWORD note[] = {
            0x11, 0x22, 0xF2, 0x2F, 0xAA, 0xBB, 0xCC, 0xEE, 0x29, 0x19, 0xFF
     };
    //Возможности Beep
    for(int i = 0; i < sizeof(note) / sizeof(DWORD); i++)
         Beep(note[i], 500U);
    system("pause");
    return 0;
}

Log Debug, всё работает
Deleting intermediate files and output files for project 'snd2 - Win32 Debug'.
--------------------Configuration: snd2 - Win32 Debug--------------------
Compiling...
snd2.cpp
Linking...

snd2.exe - 0 error(s), 0 warning(s)


Добавлено через 2 минуты
Затем проверим MessageBeep
только MessageBeep
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <windows.h>
#include <stdio.h>
 
int main()
{
    //Возможности MessageBeep
            //Можно использоовать также
            //MB_ICONHAND
            //MB_ICONQUESTION
            //MB_ICONEXCLAMATION
            //MB_ICONASTERISK
            printf("MessageBeep - system exclamation\r\n");
    system("pause");
    MessageBeep(MB_ICONEXCLAMATION);
    system("pause");
    return 0;
}

Лог Debug тотже
Ну и затем когда вы всё скомпилируете, я введу в проект диалог выбора файла и проигрывание медиа файлов на жёстком
0
Brainsbreaker
897 / 373 / 53
Регистрация: 01.02.2011
Сообщений: 1,594
06.10.2011, 10:37 8
Ох... #include "stdafx.h"
0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
07.10.2011, 16:59  [ТС] 9
Цитата Сообщение от Sylar9 Посмотреть сообщение
У меня ошибку выбвает при компиляции вот ошибка fatal error C1010: unexpected end of file while looking for precompiled header directive
У меня он скомпилировалося а что она ваше должна делать???
0
-=ЮрА=-
07.10.2011, 17:02
  #10

Не по теме:

Цитата Сообщение от Sylar9 Посмотреть сообщение
У меня он скомпилировалося а что она ваше должна делать???
- на выполнение запустите и вслушайтесь в звуки из динамиков и спикера системника;)

0
139 / 60 / 13
Регистрация: 04.09.2011
Сообщений: 1,956
Записей в блоге: 1
07.10.2011, 17:05  [ТС] 11
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение

Не по теме:

- на выполнение запустите и вслушайтесь в звуки из динамиков и спикера системника;)

Ну да мелодия играет. а потом она предлогает выбрать файл. Я выбираю но нечего не происходит???
0
-=ЮрА=-
07.10.2011, 18:10     Как задать звук в консоли
  #12

Не по теме:

Цитата Сообщение от Sylar9 Посмотреть сообщение
Ну да мелодия играет.
- это же как раз по заданию, что ещё надобно:scratch:
Цитата Сообщение от Sylar9 Посмотреть сообщение
Я выбираю но нечего не происходит???
а с этим как и обещал выше попробую разобраться т.к подозреваю
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
единственным моим предположением является отсутствие в вашей инсталляции каких либо библиортек

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2011, 18:10

Как задать максимальную длину символов в строке консоли?
В настройках спайдера можно задавать количество строк, которое будет отображаться в консоли. Как...

Как задать фиксированный размер консоли для приложения?
Объясните, почему пользуясь методом Console.SetWindowSize (Int32, Int32) - окно уменьшается, но...

Как задать путь для открываемого файла в консоли
Задача следующая: Пользователь должен запустить консольное приложение, после чего он получит...

Как можно задать несколько дат с консоли для дальнейших действий с ними?
Сидел думал, но никак в голову не приходит. В общем, условие заключается в том, что есть структура...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru