2
我知道存在关于保存到磁盘的许多问题,但其中的尼尼帮助我。下载MP3文件,保存到磁盘,并将其作为URL读取
在我的应用程序中,我使用的是必须从网址读取的播放器,并且此网址不能是流,我的意思是它必须位于设备上。 (因为我对音频进行了特殊处理,并且流式传输对此不起作用)。
所以我下载的文件,像这样:
AFHTTPRequestOperation *operation;
operation = [[AFHTTPRequestOperation alloc]initWithRequest:request];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
//Secusses
NSData *resposeObject = responseObject;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NS UserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"filename.mp3"];
[responseObject writeToFile:filePath atomically:YES];
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
//Fail;
}];
后,我下载它,我需要扮演一个网址,在这个方法:
self.audioMusicPlayer = [AEAudioFilePlayer audioFilePlayerWithURL:[NSURL URLWithString:someFile] audioController:_audioController error:&error];
我努力了解我的数据如何,可以保存为mp3文件,然后播放,作为磁盘上的网址。
我设法播放在我的应用程序中没有下载的文件,它看起来像这样:
NSError *error = nil;
self.audioMusicPlayer = [AEAudioFilePlayer audioFilePlayerWithURL:[[NSBundle mainBundle] URLForResource:@"RegevHodBetelemOhavim" withExtension:@"mp3"] audioController:_audioController error:&error];
编辑
这是我想要发挥的方式,它不工作
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"filename.mp3"];
/*
NSError *error = nil;
self.audioMusicPlayer = [AEAudioFilePlayer audioFilePlayerWithURL:[[NSBundle mainBundle] URLForResource:@"RegevHodBetelemOhavim" withExtension:@"mp3"] audioController:_audioController error:&error];
*/
NSError *error = nil;
self.audioMusicPlayer = [AEAudioFilePlayer audioFilePlayerWithURL:[NSURL URLWithString:filePath] audioController:_audioController error:&error];
你的问题到底是什么?您的代码是否正在工作,或者您在询问“幕后机制”如何工作? – sangony
编辑该问题 – MCMatan
有什么问题?下载部分?或玩家部分?你可以用另一个播放器播放下载的文件吗? – Merlevede