我从RTMPPacket获取音频数据,并使用AudioQueue在IPAD中播放它。
首先,声音好听。但大约15分钟后,就没有声音了。
然后数据就ok了,队列正在播放。
我不知道为什么。谁能帮我?谢谢。
这是我用来播放音频的类。
音频播放器.h
#import <Foundation/Foundation.h>
#import <CoreAudio/CoreAudioTypes.h>
#import <CoreFoundation/CoreFoundation.h>
#import <AudioToolbox/AudioToolbox.h>
#include <unistd.h>
#define kNumberBuffers 3
@interface AudioPlayer : NSObject
{
AudioQueueRef mQueue;
AudioQueueBufferRef mBuffers[kNumberBuffers];
AudioStreamBasicDescription mPlayFormat;
int mIndex;
@public
Boolean mIsRunning;
Boolean mIsInitialized;
int mBufferByteSize;
int pip_fd[2];
UInt32 mNumPacketsToRead;
}
@property AudioQueueRef mQueue;
-(id)init;
-(id)initWithSampleRate:(int)sampleRate;
-(void)startPlayWithBufferByteSize:(int)bufferByteSize;
-(void)stopPlay;
-(void)putAudioData:(short*)pcmData;
@end
Run Code Online (Sandbox Code Playgroud)
音频播放器.m
#import "AudioPlayer.h"
@implementation AudioPlayer
@synthesize mQueue;
void AQBufferCallback(void * inUserData ,
AudioQueueRef inAQ,
AudioQueueBufferRef inBuffer)
{
AudioPlayer *THIS = (__bridge AudioPlayer *)(inUserData);
if(THIS->mIsRunning)
{
inBuffer->mPacketDescriptionCount = …Run Code Online (Sandbox Code Playgroud)