在ios中按顺序下载音频文件

阿桑·卡玛尔

我想从服务器下面的代码中下载七个mp3剪辑文件,一次下载一个文件,是否有更好的方法按顺序下载所有剪辑文件。* url从“ 002_001”开始,到“ 002_007”结束

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration  defaultSessionConfiguration];
AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];

NSString *url = @"http://www.xyzxx.com/002_001.mp3"
NSURL *URL = [NSURL URLWithString:url];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];

NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
    NSURL *documentsDirectoryURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:NO error:nil];
    return [documentsDirectoryURL URLByAppendingPathComponent:[response suggestedFilename]];
} completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
    NSLog(@"File downloaded to: %@", filePath);

    //Save file in destination folder
    NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"/IMCFolder"];
    error = nil;
    if (![[NSFileManager defaultManager] fileExistsAtPath:stringPath])
        [[NSFileManager defaultManager] createDirectoryAtPath:stringPath withIntermediateDirectories:NO attributes:nil error:&error];

    NSData *data = [NSData dataWithContentsOfURL:filePath];
    if(data)
    {
        stringPath = [stringPath stringByAppendingPathComponent:[URL lastPathComponent]];
        [data writeToFile:stringPath atomically:YES];
    }


}];
[downloadTask resume];
安东

您应该创建一个串行队列,我正在使用GCD,dispatch_queue_t _queue = dispatch_queue_create("myQueue", DISPATCH_QUEUE_SERIAL);然后使用

    dispatch_sync(_queue, ^{
    NSURLSessionDownloadTask *downloadTask = [manager downloadTaskWithRequest:request progress:nil destination:^NSURL *(NSURL *targetPath, NSURLResponse *response) {
        // some code
    } completionHandler:^(NSURLResponse *response, NSURL *filePath, NSError *error) {
    //some code
}});

您在串行队列中创建每个任务,它们将按顺序执行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS-如何下载音频文件

来自分类Dev

ReCaptcha下载音频文件?

来自分类Dev

在React Native中下载音频文件?

来自分类Dev

AUSampler:引用外部(下载的)音频文件

来自分类Dev

在IOS 9中合并音频文件时AVAssetExportSessionStatusFailed

来自分类Dev

如何在 ios 中播放 .opus 音频文件

来自分类Dev

将按顺序播放的声音保存为一个音频文件

来自分类Dev

iOS视频到音频文件的转换

来自分类Dev

iOS中音频文件的幅度频谱

来自分类Dev

iOS视频到音频文件的转换

来自分类Dev

从YouTube-DL下载的音频文件已损坏

来自分类Dev

Google云端存储:下载部分音频文件

来自分类Dev

如何获取在NsData中下载的音频文件?

来自分类Dev

如何在Android中下载音频文件

来自分类Dev

允许用户仅通过密码下载视频/音频文件

来自分类Dev

在Python中播放远程音频文件?

来自分类Dev

音频文件无法在reactjs中播放

来自分类Dev

资源音频文件中的StringIndexOutOfBoundsException

来自分类Dev

如何从IsolatedStorage中读取音频文件?

来自分类Dev

在音频文件中获取期间

来自分类Dev

如何从音频文件中识别歌曲?

来自分类Dev

搜索音频文件中的声音片段

来自分类Dev

查找音频文件中的每个单词

来自分类Dev

顺序播放音频文件不起作用

来自分类Dev

如何查看音频CD中的隐藏音频文件

来自分类Dev

FFmpeg使用外部音频文件替换音频中的通道

来自分类Dev

快速从音频文件中删除音频通道

来自分类Dev

如何将音频文件加载到MMessage ios 10中?

来自分类Dev

如何在iOS中显示3个音频文件的相同进度条