2017-02-17 31 views
2

我正在嘗試編寫一個應用程序,其功能類似於手機查找程序,但具有完全不同的用法和調用通道。我能夠獲取用戶的位置,並且可以完成後臺抓取,但我一直在努力的是在音量大的時候播放聲音(即使手機靜音),以便在用戶的電話丟失時找到用戶的手機。這在Android上很容易,我也想在iOS上覆制它。我是能夠播放聲音時,應用程序從前臺切換至後臺做這個:Swift 3如何覆蓋靜音模式並播放背景音頻

func setupAudio(){ 
     print("Trying to play audio") 
     guard let sound = NSDataAsset(name: "FeelinGood") else { 
      print("asset not found") 
      return 
     } 


     do { 
      try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) 
      try AVAudioSession.sharedInstance().setActive(true) 

      audioPlayer = try AVAudioPlayer(data: sound.data, fileTypeHint: AVFileTypeMPEGLayer3) 

       audioPlayer.play() 


     } catch let error as NSError { 
      print("error: \(error.localizedDescription)") 
     } 


    } 

但是當我嘗試當我收到遠程通知調用此方法不起作用。我有鬧鐘可以通過遠程通知與我的應用程序一起工作,並且可以播放自定義聲音,但只有當手機不處於靜音模式時纔有效。

應用商店中有很多應用正在覆蓋靜音模式,所以我非常肯定有一種方法可以做到這一點,但我不確定如何。

回答

0

你嘗試音量設置給玩家

audioPlayer.volume = 1 

也不要忘記啓用後臺模式

enter image description here

+0

謝謝殭屍。但我的音頻播放器的問題是,當應用程序完全處於後臺時,我甚至無法播放它。所以當應用程序在後臺並鎖定屏幕時,它不起作用。在這種狀態下,我驚慌失措,但我無法推翻沉默。 – abharku

+0

帶鬧鐘我的意思是本地通知自定義旋律爲30秒 – abharku

+0

是否啓用了上述背景模式 – zombie

1

謝謝,這是現在所有工作。 @殭屍來回答你的問題是的,我沒有啓用背景模式和音頻我無法獲取背景獲取工作或應用程序在後臺進行播放音頻。

我的問題是我設置了AudioSession兩次。一旦啓動,並再次獲得遠程通知時。一旦我從啓動中刪除它,一切都開始工作。來自java背景,我的印象是,我只是重新初始化一個對象。顯然不是。如果有人能夠點亮它,這將會很有幫助。

相關問題