Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 03.01.2016
Сообщений: 9

Непрерывное воспроизведение аудио

13.01.2016, 00:30. Показов 2447. Ответов 5

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я хочу сделать так, чтобы аудио воспроизводилось непрерывно, но у меня не всё получается, поэтому хочу тут спросить. У меня есть программа с GUI, при нажатии на определённую кнопку, надо сделать, чтобы выдавала непрерывный сигнал (синусоида). Я пишу в функцию Sin_button_callback() (обработка нажатия этой кнопки) следующий код:
Matlab M
1
2
3
4
5
6
7
8
9
10
f0 = 500;
fs = 44100;
t = 1;
N = round(t*fs);
t = (0:N-1)/fs;
x = sin(2*pi*f0*t);
x(1) = 0;
x(end) = 0;
aud = audioplayer(x,fs,16,3);
play(aud);
У меня получилось так, что либо сигнал слишком быстро проходит, либо (если заключить play(aud) в бесконечный цикл) зависает программа вместе с самим матлабом. Самое интересное, что я этот код попробовал выполнить отдельно в виде скрипта (ничего не изменял), и в итоге получилось так как надо. Идёт непрерывный сигнал, который можно остановить, набрав в командном окне pause(aud) . Попробовал запустить данный скрипт из функции обработки кнопки, при помощи run(имя_скрипта) - ничего не помогло. Помогите советом, не знаю, как сделать непрерывное воспроизведение из функции.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.01.2016, 00:30
Ответы с готовыми решениями:

Воспроизведение аудио сразу после её записи
Ребят, разрешите создать новую тему, так как моя старая тема уже переросла в другую. Так вот, мне нужно, чтобы все аудио, попадающее...

Непрерывное одномерное преобразование (вейвлет анализ).
C = cwt(S, SCALES, 'wname') – возвращает коэффициенты 'c' прямого НВП вещественного или комплексного сигнала S вейвлетом 'wname' в шкале...

Воспроизведение аудио
Всем доброго времени суток. Написал небольшую программу для воспроизведения аудио файлов.. Воспроизводит большинство файлов...

5
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
13.01.2016, 09:01
Я не знаю как это реализуется в MATLAB, но очень интересно.

В MS Visual Studio при программиировании на C++ под Windows это реализуется в виде запуска потока функцией CreateThread с подключением функции которая будет выполняться в этом потоке (в Вашем случае "гудеть"). В функции переодически выполняется проверка условия на завершение потока.

Попробуйте найти в MATLAB что-то подобное. Возможно команда spmd делает что-то похожее, но для ее работы нужна лицензия Parallel Computing Toolbox.
0
0 / 0 / 0
Регистрация: 03.01.2016
Сообщений: 9
13.01.2016, 14:02  [ТС]
Интересная идея, попробую найти подобное в MATLAB

Добавлено через 3 часа 17 минут
Я решил проблему. Поэтому - кому интересно, то нужно было просто объявить переменную aud как global - при выходе из функции она продолжала бы работать
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
13.01.2016, 14:18
Понятно, audioplayer сразу создается как объект с со своим потоком выполнения.
И если не терять его handler (в GUI сделать его global), то можно потом управлять воспроизведением загруженного сигнала.
0
10 / 10 / 4
Регистрация: 09.12.2015
Сообщений: 22
13.01.2016, 14:38
Лучший ответ Сообщение было отмечено steinde как решение

Решение

Попробуйте добавить
Matlab M
1
global aud;
в начале вашего кода функции Sin_button_callback()

PS. Пока я возился, уже решили проблему
0
0 / 0 / 0
Регистрация: 03.01.2016
Сообщений: 9
13.01.2016, 15:11  [ТС]
Спасибо за ответы, в любом случае
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.01.2016, 15:11
Помогаю со студенческими работами здесь

Воспроизведение аудио
Здравствуйте! Есть вот такая простая конструкция, работает нормально. Аудио воспроизводится по нажатию на кнопку. Но есть одно...

Воспроизведение аудио
Доброго времени суток! Посоветуйте инструмент для воспроизведения аудио (небольшой аудиоплеер, пишу для себя) в C#. Желательно чтобы...

Воспроизведение аудио
Нужно, чтобы аудио-дорожка воспроизводилась без остановки до определенного события (нажатие кнопки, например). try { File...

Потоковое воспроизведение аудио
Привет, как можно реализовать потоковое воспроизведение аудио с элементами управления ? (Перемотка, пауза и тд...)

Воспроизведение аудио с PHP
Здравствуйте! Подскажите, как можно воспроизвести аудиофайл при помощи php?


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru