crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему
> Простой beep (звук) под Linux, QApplication::beep(), QSound, Phonon...
kwisp
  опции профиля:
сообщение 14.9.2010, 14:48
Сообщение #11


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


а с этим что?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
512es
  опции профиля:
сообщение 14.9.2010, 15:47
Сообщение #12


Участник
**

Группа: Участник
Сообщений: 135
Регистрация: 31.10.2008
Пользователь №: 407

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(kwisp @ 14.9.2010, 15:48) *
а с этим что?

вспомнил что на моём компе давным давно вырван системный динамик )))
так что перехожу тестировать на ноут с интеловской звуковушкой:

вкомпилил в ядро CONFIG_SND_HDA_INPUT_BEEP
но никаких бипов не слышно..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 14.9.2010, 16:29
Сообщение #13


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


512es,
миксера аудио какой?
когда бипаешь другие приложения использующие звук запущены.
предлагаю тебе установить обычный линуксовый beep и им проверять когда он запищит тогда запищит и твоя прога.
emerge -av beep
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
512es
  опции профиля:
сообщение 14.9.2010, 16:39
Сообщение #14


Участник
**

Группа: Участник
Сообщений: 135
Регистрация: 31.10.2008
Пользователь №: 407

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(kwisp @ 14.9.2010, 17:29) *
512es,
миксера аудио какой?
когда бипаешь другие приложения использующие звук запущены.
предлагаю тебе установить обычный линуксовый beep и им проверять когда он запищит тогда запищит и твоя прога.
emerge -av beep


юзаю alsamixer, там есть ползунок Speaker, всё на максимуме. что то мне подсказывает что ещё должен быть ещё и Beep. а нету..

давно поставил программу beep и проверяю им, даже пробовал через echo -e '\a', а так же через QApplication:beep()

потом собрал даже CONFIG_PCSPKR_PLATFORM=y, и CONFIG_INPUT_PCSPKR=m. всё равно та же история.
ничего больше использующего звук не включаю.

кстати, в модуле CONFIG_SND_HDA_INPUT_BEEP пробовал ставить моде в 1 (включён постоянно) и в 2 (управляется миксером). результата 0

а вообще CONFIG_SND_HDA_INPUT_BEEP должен работать без CONFIG_PCSPKR_PLATFORM=y и CONFIG_INPUT_PCSPKR??

вот такие вот дела..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kwisp
  опции профиля:
сообщение 14.9.2010, 17:02
Сообщение #15


астарожна ынтжинэр
*****

Группа: Участник
Сообщений: 1404
Регистрация: 26.11.2008
Из: ТаганрогРодинаЧехова
Пользователь №: 435

Спасибо сказали: 113 раз(а)




Репутация:   23  


давай права смотреть на утилиту beep
ls -l /usr/bin/beep что даёт?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
512es
  опции профиля:
сообщение 14.9.2010, 23:23
Сообщение #16


Участник
**

Группа: Участник
Сообщений: 135
Регистрация: 31.10.2008
Пользователь №: 407

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(kwisp @ 14.9.2010, 18:02) *
давай права смотреть на утилиту beep
ls -l /usr/bin/beep что даёт?

с правами всё впорядке.

именно модуль интела не хочет пищать.
много гуглил по этому вопросу.
http://www.google.ru/search?sourceid=chrom...hda+beep+module

вообщем, надоело )) теперь буду ковырять в сторону QSound или SDL_sound
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
512es
  опции профиля:
сообщение 15.9.2010, 0:10
Сообщение #17


Участник
**

Группа: Участник
Сообщений: 135
Регистрация: 31.10.2008
Пользователь №: 407

Спасибо сказали: 5 раз(а)




Репутация:   0  


Итак,
я кажется нашёл отличное решение этой проблемы!

Очень простое и эффективное решение будет играть звуки просто внешней командой в линуксе. Благо маленьких и шустрых консольных команд там предостаточно)) Ибо unix-way))

QProcess::startDetached("aplay -q blip2.wav");

Звук играется даже лучше чем через Phonon! Быстрее, нет нагрузки на процессор и при быстром многократном проигрывании легко накладывается друг на друга а так же на музыку, которая в тот момент играет на компе, без какого либо шума, тормозов или глюков! ))

Можно пойти и дальше, вкомпилировав в программу код плеера. Тут есть не плохой кусок кода, вырванный из линуксовой программы aplay, уже адаптированный для qt:
http://lists.trolltech.com/qt-interest/200...ead00147-0.html

Но мне лично это пока не надо. Т.к. всё равно будет зависимость от alsalib. А команда aplay почти стандартная, входит в состав пакета alsa-utils, в котором кстати и сам alsamixer.

А для винды и далее буду использовать QApplication::beep(). Там оно работает хорошо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
512es
  опции профиля:
сообщение 15.9.2010, 0:54
Сообщение #18


Участник
**

Группа: Участник
Сообщений: 135
Регистрация: 31.10.2008
Пользователь №: 407

Спасибо сказали: 5 раз(а)




Репутация:   0  


Спасибо всем за ответы и поддержку))
Поделюсь полученным плеером. Мне не жалко))

void MainWindow::clicker()
{
#ifdef Q_OS_WIN32
    QApplication::beep();
#else
    QProcess player;
    QFile snd(":/sound/blip2.wav");
    if (!snd.open(QIODevice::ReadOnly)) return;
    player.start("aplay -q");
    if (player.write(snd.readAll()) == -1) return;
    player.closeWriteChannel();
    snd.close();
    if (!player.waitForFinished(5000)) player.kill();
#endif
}


Звук играется прямо из ресурсов.
Если за 5 секунд плеер не завершился мы его убиваем.
На винде используем стандартный бип.

Работает быстро, надёжно и универсально!) Задача решена!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
molchanoviv
  опции профиля:
сообщение 15.9.2010, 7:51
Сообщение #19


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

Спасибо сказали: 41 раз(а)




Репутация:   5  


А если у пользователя нет ALSA? Вдруг OSS стоит, или еще что?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
512es
  опции профиля:
сообщение 15.9.2010, 13:39
Сообщение #20


Участник
**

Группа: Участник
Сообщений: 135
Регистрация: 31.10.2008
Пользователь №: 407

Спасибо сказали: 5 раз(а)




Репутация:   0  


Цитата(molchanoviv @ 15.9.2010, 8:51) *
А если у пользователя нет ALSA? Вдруг OSS стоит, или еще что?

Ну alsa это вроде как стандарт начиная с ядра 2.6. И кроме того, в большинстве дистрибутивов именно alsa стоит по дефолту. OSS устарел.
Существует ещё конечно много звуковых серверов, и если надо их поддерживать, можно легко заменить команду aplay -q на любую другую похожую. Например, можно в настройках программы позволить выбирать команду для проигрывания звуков.

Но по любому alsa чаще встречается в системах чем рабочий и включёный системный динамик =)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

3 страниц V  < 1 2 3 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 7.12.2021, 15:03