gpt4 book ai didi

iphone - 如何从互联网下载音频/视频文件并存储在 iPhone 应用程序中?

转载 作者:IT王子 更新时间:2023-10-29 08:04:42 24 4
gpt4 key购买 nike

我正在开发一款 iPhone 音乐应用。我想为用户提供一些选项,以便他们可以通过流媒体收听歌曲/音乐,或者他们可以在应用程序中下载音乐。我知道如何以编程方式在应用程序中流式传输音频文件。但是,我不知道如何在应用程序中下载音频文件并在下载后播放音频。并且用户还可以在下载过程中暂停下载。有可能吗?谁能指导我并为我分享任何示例代码或教程?我还有一个疑问:你能帮我在应用程序内部创建一个文件夹吗?请帮我。提前致谢。

最佳答案

创建文件夹

对于每个应用程序,您都有一个文档文件夹。您在应用程序中使用的任何文件都存储在这里。如果你想在这里创建更多的目录,那么你会做这样的事情:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"MyNewFolder"];

if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]; //Create folder if it doesn't already exist

正在下载

如果您想从 Internet 下载音频文件,那么您需要查看一种异步方法。这意味着当您在后台下载时,该应用程序可以继续执行操作。

为此,我建议您使用 ASIHTTPREQUEST .它非常适合执行任何下载请求,为您提供许多选项,例如暂停下载(根据您的请求)。

该网站提供了大量有关下载和存储文件的文档。查看 this 上的下载文件部分页面。

你只需要做这样的事情:

NSURL *url = [NSURL URLWithString:@"http://www.fileurl.com/example.mp3"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:[NSString stringWithFormat:@"%@",dataPath]]; //use the path from earlier
[request setDelegate:self];
[request startAsynchronous];

然后通过 ASIHTTPRequest 提供的委托(delegate)方法处理进度和完成。

播放

播放文件非常简单。一旦它在设备上并且您知道它在哪里,只需将它加载到音频播放器中即可。

这里有一个关于使用 AVAudioPlayer 的很棒的教程播放声音。在您的案例中使用它的一个非常简单的例子是:

NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audiofile.mp3",dataPath];

NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];

if (audioPlayer == nil)
NSLog([error description]);
else
[audioPlayer play];

关于iphone - 如何从互联网下载音频/视频文件并存储在 iPhone 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10245345/

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