美好的一天美妙的地球计算机人!
这是名为AudioQueue.h的文件中的结构:
typedef struct AudioQueueBuffer {
const UInt32 mAudioDataBytesCapacity;
void * const mAudioData;
UInt32 mAudioDataByteSize;
void * mUserData;
const UInt32 mPacketDescriptionCapacity;
AudioStreamPacketDescription * const mPacketDescriptions;
UInt32 mPacketDescriptionCount;
#ifdef __cplusplus
AudioQueueBuffer() : mAudioDataBytesCapacity(0), mAudioData(0), mPacketDescriptionCapacity(0), mPacketDescriptions(0) { }
#endif
} AudioQueueBuffer;
/*!
@typedef AudioQueueBufferRef
@abstract An pointer to an AudioQueueBuffer.
*/
typedef AudioQueueBuffer *AudioQueueBufferRef;
Run Code Online (Sandbox Code Playgroud)
然后在AudioPlayer.h的标题中有这个:
AudioQueueBufferRef mBuffers[kNumberBuffers];
Run Code Online (Sandbox Code Playgroud)
然后我要做的是:
for (int i = 0; i < kNumberBuffers; ++i) {
printf("%i\n", &mBuffers[i].mAudioData );
XThrowIfError(AudioQueueAllocateBufferWithPacketDescriptions(mQueue, bufferByteSize, (isFormatVBR ? mNumPacketsToRead : 0), &mBuffers[i]), "AudioQueueAllocateBuffer failed");
Run Code Online (Sandbox Code Playgroud)
基本上我正在尝试访问mAudioData中的信息,但得到错误:
request for member 'mAudioData' in '((AQPlayer*)this)->AQPlayer::mBuffers[i]', which is of non-class type 'AudioQueueBuffer*'
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢!
AudioQueueBufferRef是一个AudioQueueBuffer指针.mBuffers是这些的数组.所以提到的要素的成员时mBuffers,你应该用->不.:
printf("%i\n", &mBuffers[i]->mAudioData );
Run Code Online (Sandbox Code Playgroud)
(我猜你可能不想要这&两个 - 由mAudioData持有的地址似乎比在其AudioQueueBuffer结构中该成员的位置打印更有用)
| 归档时间: |
|
| 查看次数: |
3282 次 |
| 最近记录: |