z
Jan. 19, 2017, 7:15 p.m.

В офф примере для чтения используется QIODevice::writeData, почему?

qt, linux, io, QAudioInput, charts

Пытался разбираться как связывать данные с чартами и наткнулся на это: http://doc.qt.io/qt-5/qtcharts-audio-example.html В доках на writeData чётко написано: [pure virtual protected] qint64 QIODevice::writeData(const char *data, qint64 maxSize) Writes up to maxSize bytes from data to the device. Returns the number of bytes written, or -1 if an error occurred. Но пример-то работает, а значит в этом методе происходит чтение данных из микрофона. Почему это работает/реализовано в методе writeData а не в readData?

1

Do you like it? Share on social networks!

2
Evgenii Legotckoi
  • Jan. 19, 2017, 8:15 p.m.
  • The answer was marked as a solution.

Там всё правильно реализовано. Чтение из микрофона производится через объект класса QAudioInput.

А writeData является переопределённым методом базового класса QIODevice в наследованном классе XYSeriesIODevice . А уже этот класс XYSeriesIODevice служит для записи данных в объект QLineSeries .

Так что с точки зрения логики всё правильно и логично.

  1. QAudioInput читает из микрофона
  2. QAudioInput передаёт считанные данные в XYSeriesIODevice
  3. XYSeriesIODevice пишет данные в QLineSeries
    z
    • Jan. 19, 2017, 10:08 p.m.

    Понятно, я подумал что XYSeriesIODevice это и есть интерфейс для audioinput, потому и смутило описание метода в доках. Спасибо!

      Comments

      Only authorized users can post comments.
      Please, Log in or Sign up
      • Last comments
      • AK
        April 1, 2025, 11:41 a.m.
        Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
      • Evgenii Legotckoi
        March 9, 2025, 9:02 p.m.
        К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
      • VP
        March 9, 2025, 4:14 p.m.
        Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
      • ИМ
        Nov. 22, 2024, 9:51 p.m.
        Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
      • Evgenii Legotckoi
        Oct. 31, 2024, 11:37 p.m.
        Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup