It is still not the right fix using "App plays audio" for the key "Require
background mode" in info.plist.
AudioOutputUnitStart() may still fail on iOS 8.1.2 devices.

Looking at AVAudioSessionErrorCodeCannotStartPlaying again, I see that with
that info.plist option,
the AmbientSound mode still allows now background audio, correct?

I could still add sleep() to it, but this sounds too ad-hoc to be an
acceptable solution for all the devices.

Should I file a bug report to Apple? Any thoughts?

Thanks,
Beinan


On Mon, Jan 19, 2015 at 5:23 PM, Beinan Li <[email protected]> wrote:

> OK, found it. Thanks for the tip Scott!
> Under those modes, I'd have to enable the background mode for audio,
> otherwise when it takes longer for the foreground phone app to dismiss,
> the AudioOutputUnitStart() may fail its turn.
>
>
>
> Thanks,
> Beinan
>
>
> On Mon, Jan 19, 2015 at 5:03 PM, Beinan Li <[email protected]> wrote:
>
>> Thanks. I found some clues.
>>
>> Just under AmbientSound and iOS8 devices,
>>
>> 1. If I put a sleep(2); before the AudioOutputUnitStart() call, then the
>> audio will restore normally. And 2 is an empirical number, 1 would be too
>> short, and 3 seems to work the same way as 2.
>>
>> 2. If the first call to AudioOutputUnitStart() fails, there is just no
>> use to wait and retry.
>>
>> This looks scary because I found no docs explaining the differences in
>> interruption handling "timing" between iOS versions. And the number feels
>> completely random.
>>
>> Does anyone have any pointers?
>>
>> Thanks,
>> Beinan
>>
>>
>> On Mon, Jan 19, 2015 at 4:36 PM, Douglas Scott <[email protected]>
>> wrote:
>>
>>> Just as a starting point:  if you grep that error in the public audio
>>> headers, you will find it is:
>>>
>>> AVAudioSessionErrorCodeCannotStartPlaying = '!pla', /* 0x21706C61,
>>> 561015905 */
>>>
>>>
>>> with description:
>>>
>>>   @constant AVAudioSessionErrorCodeCannotStartPlaying
>>> The app is not allowed to start recording and/or playing, usually
>>> because of a lack of audio key in
>>>   its Info.plist.  This could also happen if the app has this key but
>>> uses a category that can't record
>>>   and/or play in the background (AVAudioSessionCategoryAmbient,
>>> AVAudioSessionCategorySoloAmbient, etc.).
>>>
>>> On Jan 19, 2015, at 12:11 PM, Beinan Li <[email protected]> wrote:
>>>
>>> Hi CoreAudio,
>>>
>>> Our app used to handle interruption correctly with the registered
>>> interruption listener.
>>> Now on iOS 8 under kAudioSessionCategory_AmbientSound category,
>>> whenever we reject a phone call, the call to AudioOutputUnitStart() for
>>> resuming the
>>> audio pipeline always returns:
>>>
>>> ERROR:     [0x3afe09dc] 1230: AUIOClient_StartIO failed (561015905)
>>>
>>> And our apps will have no sound as a result.
>>>
>>> We set it to retry on fails but it would always fail on retries.
>>>
>>> We were we missing?
>>>
>>> Thanks,
>>> Beinan
>>>
>>>  _______________________________________________
>>> Do not post admin requests to the list. They will be ignored.
>>> Coreaudio-api mailing list      ([email protected])
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> https://lists.apple.com/mailman/options/coreaudio-api/douglas_scott%40apple.com
>>>
>>> This email sent to [email protected]
>>>
>>>
>>>
>>
>
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/coreaudio-api/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to