一、FILE C语言函数支持
FILE*mfp;
mfp=fopen(filePath,"w+");
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,YES);
NSString*path = [pathsobjectAtIndex:0];
uint32_trandomNum =arc4random_uniform(10000);
NSString* filename = [NSStringstringWithFormat:@"/test%d,pcm",randomNum];
NSString *realpath = [path stringByAppendingString:filename];//stringByAppendingString是在skinPath加后缀的意思
constchar*filePath = [realpathUTF8String];
mfp=fopen(filePath,"w+");
fprintf(mfp, data.buffer, data.bufferLength); //写数据
二、NSData+NSURL方式
-(void)playStreamData{
//如果后台传过来数据,只需要一句 [[PCMDataPlayer sharePlayer] playWithData:subData];就可以正常播放
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"16k" ofType:@"pcm"]];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
NSMutableData *mData=[[NSMutableData alloc] initWithData:data];
NSIntegertem=5000;
NSIntegercount=mData.length/tem+1;
for(inti=0; i
//CMSampleBufferRef sampleBuf = [CMSampleBufferRef alloc];//[[NSMutableArray alloc] init];
NSData*subData ;
if(i==count-1) {
subData =[mDatasubdataWithRange:NSMakeRange(i*tem, mData.length-i*tem)];
}else{
subData =[mDatasubdataWithRange:NSMakeRange(i*tem, tem)];
}
NSLog(@"数据i------:%d",i);
[[PCMDataPlayer sharePlayer] playWithData:subData];
if(i+1== count){
i=0;
}
[_rtcEngine pushExternalAudioFrameRawData:subData samples:16000 timestamp:0];
}
}
网友评论