Форум программистов, компьютерный форум, киберфорум
Наши страницы

Воспроизведение музыки из интернета сразу после нажатия кнопки - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C Запомнить была ли нажата кнопка http://www.cyberforum.ru/objective-c/thread1171078.html
Всем привет! Есть кнопка UIButton, отвечающая за выставление "Лайков" к посту. Для изменения цвета кнопки после нажатия использую следующий код, меняющий картинку кнопки с like.png на liked.png. ...
Objective-C Массивы и строки Здравствуйте. Не подскажете, как поступить в таком случае. Есть массив array c номерами заказов находим его размерность и пускаем цикл. for (int i=0; i<; i++) { NSString *array_GUID = ... http://www.cyberforum.ru/objective-c/thread1170007.html
NSCollectionView: центрирование итемов Objective-C
Есть NSCollectionView, в него добавлены элементы (программно, не через байндинги). При изменении размера окна горизонтально (NSCollectionView) появляется пустое пространство, а потом при определенном...
Objective-C Дозагрузка данных в UITableView при скролле
С веб-сервиса загружаю порцию данных, отображаю их на UITableViewController. Как после прокрутки до последней записи загрузить еще одну порцию данных и отобразить их в этой же таблице? Не могу...
Objective-C Инверсия части изображения при перекрытии другим изображением http://www.cyberforum.ru/objective-c/thread1166795.html
Можно ли создать вот такой эффект Т.е есть белых бокс...и текст (возможно UILabel или UIImageView), суть в том что белый бокс двигается слево на право... И когда он "перекрывает" текст - текст в...
Objective-C Cocos2d - подскажите хорошие учебники для начинающих с нуля? Добрый вечер Форумчане, Пожалуйста, подскажите хороший (понятный на русском языке) ресурс\учебник по Cocos2D iOs для начинающего. Заранее благодарю подробнее

Показать сообщение отдельно
aply
0 / 0 / 0
Регистрация: 19.11.2013
Сообщений: 40

Воспроизведение музыки из интернета сразу после нажатия кнопки - Objective-C

14.05.2014, 14:46. Просмотров 2086. Ответов 10
Метки (Все метки)

Для воспроизведения песни в браузере использую GET запрос к сервису.
Браузер, в частности гугл хром, начинает сразу её воспроизводить и показывает количество загруженного.
Как сделать такое же в IOS ?
Пробую через AVAudioPlayer и NSURLSessionDownloadTask, но это не то - песня начинает звучать только после полного скачивания.
Как заставить звучать сразу? При этом желательно еще и кэшировать в Library/Cache.

Вот метод, который пытаюсь использовать:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
-(void) playWithTrackItem:(NSDictionary *)trackItem
{
    NSString *fileName = [[trackItem[@"default"] stringValue] stringByAppendingString:@".tmp"];
    NSData *trackData =[NSData dataWithContentsOfFile:[cachesDirectory stringByAppendingPathComponent:fileName]];
    if (trackData) {
        dispatch_async(dispatch_get_main_queue(), ^{
            player = [[AVAudioPlayer alloc] initWithData:trackData error:nil];
            [player play];
        });
    } else {
        
        NSString *urlString = [MAINURL stringByAppendingFormat:@"api/tracks/%@/listen/2?token=%@", [trackItem[@"default"] stringValue],[XMSession sharedInstance].token];
        NSURL *url = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
        
        NSLog(@"url=%@",url);
        
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        NSURLSessionDownloadTask *downloadTask =
        [session downloadTaskWithRequest:request completionHandler:^(NSURL *location, NSURLResponse *response, NSError *error) {
            if (!error){
                NSError *error1;
                NSURL *trackCacheURL = [NSURL fileURLWithPath:[cachesDirectory stringByAppendingPathComponent:fileName]];       
                NSFileManager *fileManager = [NSFileManager defaultManager];
                if ([fileManager moveItemAtURL:location
                                         toURL:trackCacheURL
                                         error: &error1])
                {
                    NSLog(@"File is saved to =%@",cachesDirectory);
                    dispatch_async(dispatch_get_main_queue(), ^{
                        player = [[AVAudioPlayer alloc] initWithData:[NSData dataWithContentsOfURL:trackCacheURL] error:nil];
                        [player play];
                    });
                    
                } else {
                    NSLog(@"failed to move: %@",[error1 userInfo]);
                }
            }
        }];
        [downloadTask resume];
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.