2013-09-05 2 views
0

Я хочу, чтобы звук моего приложения запускался в фоновом режиме, и я следил за this tutorial, но он не работает. Звук моего приложения все еще остановился, когда я нажал кнопку «домой», и понял, что он не назвал «applicationDidBecomeActive» или «applicationDidEnterBackground» (проблема продолжалась, хотя я отключил параметр «Приложение не работает в фоновом режиме»). Я занимался этим на прошлой неделе.Приложение IOS не работает в фоновом режиме

До сих пор я сделал это шаги:

-Добавлена ​​AVFoundation рамки и объявил

#import <AVFoundation/AVFoundation.h> 

enter image description here

-SET до AVAudioSession в аудио

NSString *audioName = [NSString stringWithFormat:@"audio%d", (nimages)]; 
     NSString *soundPath =[[NSBundle mainBundle]pathForResource:audioName ofType:@"mp3"]; 
     NSURL *soundURL = [NSURL fileURLWithPath:soundPath]; 
     NSError *error = nil; 
     AVAudioPlayer *audio = nil; 
     audio = [[AVAudioPlayer alloc]initWithContentsOfURL:soundURL error:&error]; 
     audio.numberOfLoops = -1; 
     audio.volume = 0.9; 
     if (error) { 
      NSLog(@"%@", [error localizedDescription]); 
      NSLog(@"Unable to load file");     
     }else { 
      //Make sure the system follows our playback status 
      [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
      [[AVAudioSession sharedInstance] setActive: YES error: nil]; 
      //Load the audio into memory 
      [audio prepareToPlay]; 
     } 

-Add строк в plist

enter image description here

Обновлено:

Мое приложение является аудио приложение, которое пользователь может играть определенную звуковую дорожку из моего приложения, даже если это ввести фон. Является ли это возможным?

ответ

0

Я думаю, что он должен активно воспроизводить аудио, чтобы это работало. Если ваше приложение не является на самом деле звуковым приложением, вы можете попробовать настроить приложение вместо VoIP; это не требует активного соединения. Он также не будет блокировать другие приложения, желающие использовать аудио. Просто установите фоновый режим: «Приложение предоставляет услуги передачи голоса по IP», а затем оно будет работать в фоновом режиме в течение десяти минут; вы можете подключить сокет VoIP и нажимать на него контент, если хотите сохранить его или проснуться.

+0

Я думаю, что мое приложение рассмотрит аудио-приложение, потому что пользователь может продолжить прослушивание аудио музыки приложения, когда оно находится в фоновом режиме. –

0

Я предлагаю вам прочитать «Apple Human Interface» по clicking here

Есть ограниченные ситуации, когда приложение будет разрешено работать в фоновом режиме, такие как (аудио, загрузка, Update..etc), вы можете найти его все по ссылке, которую я вам предоставил.

0

Используйте это, чтобы он работал в своем рабочем коде.

NSURL * url = [NSURL fileURLWithPath: [NSString stringWithFormat: @ "% @/notification.wav", [[NSBundle mainBundle] resourcePath]]];

  NSError *error; 

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback ошибка: ноль];

  AudioSessionInitialize(NULL, NULL, NULL,NULL); 
      UInt32 sessionCategory = kAudioSessionCategory_PlayAndRecord; 
      AudioSessionSetProperty(kAudioSessionProperty_AudioCategory, sizeof(sessionCategory), &sessionCategory); 
      UInt32 value = YES; 
      AudioSessionSetProperty(kAudioSessionProperty_OverrideCategoryMixWithOthers, sizeof(value), &value); 
      AudioSessionSetProperty(kAudioSessionProperty_OtherMixableAudioShouldDuck, sizeof(value), &value); 
      [[AVAudioSession sharedInstance] setActive: YES error: nil]; 
      AudioSessionSetActive(true); 



      // self.appAudioPlayer=audioPlayer; 
      AVAudioPlayer *audioPlayer101 = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 
      self.audioPlayerForPlay.delegate = self; 
      self.audioPlayerForPlay.numberOfLoops=-1; 
      [self.audioPlayerForPlay prepareToPlay]; 
      UInt32 doChangeDefaultRoute = 1; 
      AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker, sizeof(doChangeDefaultRoute), &doChangeDefaultRoute); 





      self.audioPlayerForPlay = audioPlayer101; 
      [audioPlayer101 release]; 
      [self.audioPlayerForPlay play]; 
+0

, где мне нужно установить коды? Разум объясните мне? Я немного размыл об этом. Спасибо. @Ankur –

+0

Где вы играете аудио на переднем плане .. – Ankur

+0

это не сработало для меня. –

Смежные вопросы