сохранить данные mp3 в файл на iphone - PullRequest
0 голосов
/ 10 марта 2011

Я разрабатываю приложение для iPhone, и мне нужно скачать и Сохранить mp3 на iPhone и воспроизвести его, Я выловил работу по загрузке и поместил данные в переменную NSMutableData. Но Как я могу сохранить эти данные в виде файла mp3

любой совет:)

Ответы [ 2 ]

3 голосов
/ 10 марта 2011

Если вы хотите сохранить его в каталоге документов приложения с расширением .mp3, вы можете использовать следующее:

NSString *mp3FileName = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                              NSUserDomainMask, 
                                                              YES) lastObject]
                         stringByAppendingPathComponent:@"MyFileName.mp3"];
[[NSFileManager defaultManager] createFileAtPath:mp3FileName 
                                        contents:mp3Data 
                                      attributes:nil];

Где mp3Data - это ваши NSMutableData. Я использую код, аналогичный приведенному выше, для сохранения документов PDF, пользовательских форматов файлов, jpgs и всех видов. У меня еще не было причины попробовать mp3, но нет причин, по которым это не следует делать.

Чтобы прочитать файл обратно в NSData для отправки в AVAudioPlayer:

NSString *mp3FileName = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                          NSUserDomainMask, 
                                                          YES) lastObject]
                          stringByAppendingPathComponent:@"MyFileName.mp3"];
NSData *mp3Data = [NSData dataWithContentsOfFile:mp3FileName];
avAudioPlayer.data = mp3Data;

Приведенный выше код непроверенного кода никогда не имел причины использовать звуки в моих приложениях.

2 голосов
/ 13 марта 2011

вот правильное решение добавление к @Diziet комментарию

'// подготовить данные для сохранения в файл NSData * fileData = [[NSData alloc] initWithData: (NSData *) receiveData];

NSString *mp3FileName = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES) lastObject]stringByAppendingPathComponent:@"MyFileName.mp3"];
//create the file
[[NSFileManager defaultManager] createFileAtPath:mp3FileName contents:receivedData attributes:nil];

//load the file for playing
NSString *FileNamePath = [[NSString alloc] initWithString:@"MyFileName.mp3"];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appSettingsPath = [documentsDirectory stringByAppendingPathComponent:FileNamePath];
NSURL *url=[[NSURL alloc]initWithString:appSettingsPath ];
player=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:NULL];
player.delegate=self;
[player play];'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...