ios文件读写操作

2019-04-17  本文已影响0人  大飞_2048

一、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];

    }

}

上一篇 下一篇

猜你喜欢

热点阅读