PDA

View Full Version : QAudioOutput Play Audio Trên Buffer



AlexF
13-04-2011, 11:06 AM
Để phục vụ cho việc phát audio ra loa, Qt có hỗ trợ lớp QAudioOutput,class này có thể đọc 1 file âm thanh và phát ra, hoặc có thể phát ra ngay trên buffer ( thường thì sẽ phục vụ cho việc stream audio )

mình sưu tầm được đoạn code phát audio ra loa trên buffer, post lên cho a e nào quan tâm nghiên cứu (:#) (:#)


đoạn code sinh dữ liệu trên buffer

/*
Inherited virtual pure function.
Reads up to len bytes from the device into data, and returns the number
of bytes read or -1 if an error occurred. If there are no bytes to be read,
this function should return -1 if there can never be more bytes available.
*/
qint64 AudioPuller::readData(char* data, qint64 length)
{
m_valueX = 20000;
qWarning() << "ReadData " << length;
qint64 originalLen = length;
qint64 i = 0;
while (i < length)
{
if (++m_currentStepX > m_stepX)
{
m_currentStepX = 0;
m_valueX = -m_valueX;
}
data[i] = m_valueX;
i++;
}

m_stepX++;

return originalLen;

// qint64 total = 0;
// while (len - total) {
// const qint64 chunk = qMin((m_buffer.size() - m_pos), len - total);
// memcpy(data, m_buffer.constData() + m_pos, chunk);
// m_pos = (m_pos + chunk) % m_buffer.size();
// total += chunk;
// }
// return total;
}

caodungviet
24-04-2011, 03:18 PM
thanks bác,,mà bác làm được chương trình chat voice trên QT chưa ạ??
có thể chia sẻ cho mọi người được không??
thanks

AlexF
24-04-2011, 04:29 PM
mình làm cái chat voice xong zùi :), chạy chát rất nhiều máy vẫn good, bạn có thể tham khảo source code trên kia để làm, sorry vì code của mình là 1 module của dự án nên ko share được

caodungviet
25-04-2011, 08:07 PM
bác AlexF giúp em với: em nhân được đề tài giao tiếp USB HID với QT cretor trên linux, đọc các thống của USB như tên nhà sản xuất, các file..bác có thể chỉ hướng giúp em được không ??
thanks bác nhiều ^^