gpt4 book ai didi

ios - 如何检查音频是否可以离线使用?

转载 作者:行者123 更新时间:2023-12-03 01:55:19 24 4
gpt4 key购买 nike

当我单击按钮时,每次都会加载音频。如果已经上传音频,如何立即播放?

- (void) song{
if (_index1 == 0) {
NSString *stringURL = @"https://drive.google.com/uc?export=download&id=0B6zMam2kAK39UjJuTHB5QWRuRU0";
NSURL *url = [NSURL URLWithString:stringURL];
NSData *urlData = [NSData dataWithContentsOfURL:url];
if ( urlData )
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"music.mp3"];
[urlData writeToFile:filePath atomically:YES];
self.audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:filePath] error:nil];
}
}
}

最佳答案

您的代码始终保存到文档目录中的文件“music.mp3”中。
(您应该使用 NSString 方法来处理路径而不是 stringWithFormat。看看 stringByAppendingPathComponent 。它为您处理构建路径字符串的细节。)

我猜你只处理一个声音文件?

如果要检查文件是否存在,则需要创建 NSFileManager 的实例并使用其中一个 fileExistsfileExistsAtPath 这样的方法.如果文件存在,请跳过下载并简单地加载和播放文件。

请注意,您不应使用 dataWithContentsOfURL 从 Web 下载文件。这是一个同步调用,它将阻塞 UI,直到下载完成。您应该使用 NSURLSession反而。您可以创建一个 NSURLDownloadTask并将文件直接下载到磁盘,然后在下载完成后调用代码块。

看看NSURLSession sharedSessiondownloadTaskWithURL方法。

Ray Wenderlich 有一个使用 NSURLSession 的教程和 NSURLSessionDownloadTask :

NSURLSession Tutorial

关于ios - 如何检查音频是否可以离线使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36115260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com