我正在使用 Qt 进行一些音频输出。有一个示例音频输出,其中纯虚函数 qint64 QIODevice::readData ( char * data, qint64 maxSize ) 像这样重新实现(这不是示例中的实际代码)。
qint64 Generator::readData(char *data, qint64 len)
{
memcpy(data, m_buffer.data(), len);
return len;
}
因此,我们获取指向数据的指针,将内存从缓冲区复制到该数据。我想知道是否可以将指针数据分配给新位置,如下所示:
qint64 Generator::readData(char *data, qint64 len)
{
data = m_buffer.data();
return len;
}
因为,memcpy 很慢而且 C。我可以吗?谢谢!
好的,只是不要收到“什么是慢”的评论:首先 - memcpy 比指针分配慢第二 - 是的,我在播放声音时有延迟,我想让程序在每一点都处于最佳状态。
PS我正在尝试这样做,但我没有声音,所以也许答案是否定的。那么为什么?