我知道已经存在关于保存到磁盘的所有问题,但是他们中的nun帮助了我。
在我的应用程序中,我正在使用必须从网址读取的播放器,并且此网址不能通过流,我的意思是,它必须在设备上。 (因为我正在对音频产生特殊效果,而流式传输不适用于此)。
所以我正在下载文件:
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];
答案 0 :(得分:0)
感谢您试图提供帮助,代码非常好,试图运行是在模拟器上出于某种未知原因....抱歉!并再次感谢。