音楽を再生するアプリがあり、バックグラウンドモードを有効にしたい。オーディオカテゴリはkAudioSessionCategory_MediaPlaybackに設定されており、info.plistファイル内のUIBackgroundModesにオーディオ文字列を追加すると、オーディオが再生され続けます。ここまでは順調ですね。
次に、このオプションをユーザーに提供して、オーディオをバックグラウンドで再生するかどうかを選択します。ファイルを取得してキーを削除しようとしましたが、これまでのところ何も起こりません。私がしたことは(UIButtonによって処理されるセレクターで):
-(void) disableBackgroundAudio:(UIButton*)button{
NSDictionary *plistDict = [[NSBundle mainBundle] infoDictionary];
[plistDict setValue:@"" forKey:@"UIBackgroundModes"];
}
この値をコンソールで印刷すると、前後に「オーディオ」があったことがわかります。これが呼び出された後、空白の文字列が表示されます。ただし、ホームボタンを押すと、オーディオを無効にしても、オーディオは常に再生されます。
私の推測では、これはおそらくinfo.plistファイルを更新する方法ではないでしょう(それが可能かどうかはわかりませんが)。これは可能ですか?結局のところ、ユーザーに選択肢を与えることは私の特定のアプリにとってより良いと思います、そして私は他のアプリがそれをしているのを見ました。
どんな助けでも大歓迎です。