Details about Audio Player Objects

Hi all:

I’m porting our game engine’s sound library to OpenSL ES and am having trouble finding some technical info that maybe somebody can help with.

Our engine abstracts sound systems as a set of “tracks” (players) onto which any “sample” (source) can be played. In that sense, OpenSL should be an easy fit. However, there are some details I can’t find info on.

  • Can a Player object be created once, and re-used during the lifetime of the program, potentially being fed data in different formats? i.e. can I change/replace the “format” object that is ultimately associated with a Player? Or do I need to re-create the Player object in order to provide a new format or source?

  • Since all my “tracks” are routed to the main output, can all my Player objects share the same SLDataLocator_OutputMix and SLDataSink objects?

Thanks for any advice!