gpt4 book ai didi

ios - 使用 AVPlayer 播放和下载 MP3 文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:32 34 4
gpt4 key购买 nike

我目前正在使用以下代码通过 AVPlayer 播放 mp3

    NSString *title = [[NSString alloc] initWithFormat:@"http://.......com/%@", mp3File];
NSURL *url = [[NSURL alloc] initWithString:title];
AVPlayerItem *anItem = [AVPlayerItem playerItemWithURL:url];


player = [AVPlayer playerWithPlayerItem:anItem];

[player play];

不过我也想把下载的文件保存起来,这样后面的播放就不需要再下载了。为此,我使用以下内容

     NSString  *path = [NSHomeDirectory() stringByAppendingPathComponent:[@"Documents/" stringByAppendingString:surahAyah]];

if (![[NSFileManager defaultManager] fileExistsAtPath:path])
{
NSString *title = [[NSString alloc] initWithFormat:@"http://.......com/%@", mp3File];
NSURL *url = [[NSURL alloc] initWithString:title];

NSData *dbFile = [[NSData alloc] initWithContentsOfURL:url];
[dbFile writeToFile:path atomically:YES];
}

合并上述内容并使用缓存的最佳实践是什么? AVPlayerItem 并存储它而不是重新调用以下载和保存文件?

MP3 文件的大小约为 100KB,所以我不太担心下载进度。

最佳答案

我已经使用很棒的 AFNetworking 库成功地完成了这项工作

  NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

operation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Successfully downloaded file to %@", path);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];


[operation start];

关于ios - 使用 AVPlayer 播放和下载 MP3 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396158/

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