<div dir="ltr">Hi all,<div><br></div><div>I'm interested in writing an iOS application that can play audio received over RTP.  I began with the excellent iOS tutorials, and have succeeded in playing streaming audio with great results.</div>
<div><br></div><div>I'd like to play audio in the background, just as you would have when playing music with the iPod application or other streaming music apps (Spotify, Pandora, etc).  What I've seen is that audio playback always stops as soon as the home button is pressed (currently all testing is occurring with iOS 6 in the XCode simulator).</div>
<div><br></div><div>Are there any suggestions for background playback on iOS with gstreamer?</div><div><br></div><div><br></div><div>Here's a little more background on the changes I made.  I tested with the RTP audio source and the test audio source, getting the same result with both.  I modified the Tutorial 2 application provided with the GStreamer iOS SDK so that:</div>
<div><br></div><div>1) The Tutorial 2-info.plist file has a property for 'Required background modes' equaling 'App plays audio'.</div><div><br></div><div>2) Modified the 'gstreamerInitialized' function to create an audio session and set the category to 'AVAudioSessionCategoryPlayback'.  The session is shutdown when the app exits.</div>
<div><br></div><div><div>-(void) gstreamerInitialized</div><div>{</div><div>    dispatch_async(dispatch_get_main_queue(), ^{</div><div>        play_button.enabled = TRUE;</div><div>        pause_button.enabled = TRUE;</div>
<div>        message_label.text = @"Ready";</div><div>    });</div><div><br></div><div>    NSError *activationError = nil;</div><div>    BOOL success = [[AVAudioSession sharedInstance] setActive: YES error: &activationError];</div>
<div>    if (!success) { /* handle the error in activationError */ }</div><div><br></div><div>    NSError *setCategoryError = nil;</div><div>    success = [[AVAudioSession sharedInstance]</div><div>               setCategory: AVAudioSessionCategoryPlayback</div>
<div>               error: &setCategoryError];</div><div>    </div><div>    if (!success) { /* handle the error in setCategoryError */ }</div><div>}</div></div><div><br></div><div><br></div><div>Thanks in advance,</div>
<div><br></div><div>--Scott Kidder</div></div>