[
https://issues.apache.org/jira/browse/CB-7684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15324133#comment-15324133
]
ASF GitHub Bot commented on CB-7684:
------------------------------------
Github user tbrebant commented on the issue:
https://github.com/apache/cordova-plugin-media/pull/33
_(same comment as on Jira's CB-7684 ticket)_
We arrived to the same conclusion as Nathan Stryker on Jira and
@ionut-movila in this PR.
The problem for us is not only that when a media is finished it's stopping
the others, but also that `.release()` is killing all sounds running even if
they were played by another plugin (or by WebView's default webaudio system),
triggering a descriptive:
```
AVAudioSession.mm:646: -[AVAudioSession setActive:withOptions:error:]:
Deactivating an audio session that has running I/O. All I/O should be stopped
or paused prior to deactivating the audio session.
```
We found that `AVAudioSession` is a singleton for the whole app (cf.
https://developer.apple.com/library/ios/documentation/AVFoundation/Reference/AVAudioSession_ClassReference/).
Apple says:
> Most apps never need to deactivate their audio session explicitly.
Important exceptions include VoIP (Voice over Internet Protocol) apps,
turn-by-turn navigation apps, and, in some cases, recording apps.
(cf.
https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/ConfiguringanAudioSession/ConfiguringanAudioSession.html)
In our project we don't use the recording capacities. We removed all
`avSession setActive:NO` (as in this PR) and it's is working pretty well.
Additionally it may be worth to update the comment:
```
returns whether or not audioSession is available - creates it if necessary
```
to something like:
```
// returns whether or not audioSession is available - retrieve the instance
(app singleton) if necessary.
```
If I am sending a PR, would anyone be able to test the recording feature?
> [Media] CDVSound Kills any and all playing sound files when a single file
> finishes
> ----------------------------------------------------------------------------------
>
> Key: CB-7684
> URL: https://issues.apache.org/jira/browse/CB-7684
> Project: Apache Cordova
> Issue Type: Sub-task
> Components: Plugin Media
> Affects Versions: 3.5.0
> Environment: iOS
> Reporter: Nathan Stryker
>
> The CDVSound file will kill all playing media files when ever a single file
> completes playing. The issue is around like 691 in the method
> "AudioDidFinishPlaying", with the code:
> if (self.avSession) {
> [self.avSession setActive:NO error:nil];
> }
> The reason I think this is a bug is that if a user as Music file A playing in
> a loop and Music file B plays, when B completes the "setActive:NO" will kill
> the avSession of both A and B.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]