public void Play(ResourceActivationContext ctxt, PlayableContentBatch playableBatch)
        {
            BatchContext playableContext = new BatchContext
            {
                ActivationContext = ctxt,
                Playables         = playableBatch.Playables
            };

            m_containers[ctxt.InstanceId] = playableContext;

            if (playableBatch.Playables != null && playableBatch.Playables.Length > 0)
            {
                PlayNextFromBatch(playableContext, playableBatch, 0);
            }
            else
            {
                ctxt.Close();
            }
        }
        void PlayNextFromBatch(BatchContext ctxt, PlayableContentBatch playableBatch, int idx)
        {
            if (idx < playableBatch.Playables.Length)
            {
                var playable = playableBatch.Playables[idx];

                Play(ctxt, playable, () =>
                {
                    if (!ctxt.Abort)
                    {
                        PlayNextFromBatch(ctxt, playableBatch, idx + 1);
                    }
                });
            }
            else
            {
                ctxt.ActivationContext.Close();
            }
        }