Exemplo n.º 1
0
        public void Prepare(string assetName, HandlePrepare prepareHandler)
        {
            if (mMediaPlayer == null)
            {
                mMediaPlayer = new Android.Media.MediaPlayer();
            }

            AssetFileDescriptor assetFd = Android.App.Application.Context.Assets.OpenFd(assetName);

            mMediaPlayer.Reset();
            mMediaPlayer.SetDataSource(assetFd);
            mMediaPlayer.SetAudioStreamType(ExchangeAudioStreamType(mAudioStreamType));
            mMediaPlayer.Looping = mLoop;
            mMediaPlayer.SetOnPreparedListener(new LocalPrepareListener(prepareHandler));
        }
Exemplo n.º 2
0
        public void Prepare(string assetName, HandlePrepare prepareHandler)
        {
            if (mAudioPlayer != null)
            {
                mAudioPlayer.Stop();
                mAudioPlayer.Dispose();
            }

            bool result           = false;
            int  extStartDotIndex = assetName.LastIndexOf('.');

            if (extStartDotIndex > 0)
            {
                string fileName = assetName.Substring(0, extStartDotIndex);
                string extName  = assetName.Substring(extStartDotIndex);

                NSDataAsset assetData = new NSDataAsset(fileName);
                NSError     error     = null;

                if (assetData != null)
                {
                    AVAudioSession.SharedInstance().SetCategory(AVAudioSessionCategory.Playback);
                    AVAudioSession.SharedInstance().SetActive(true);
                    mAudioPlayer = new AVAudioPlayer(assetData.Data, extName, out error);
                    SetLooping(mLoop);
                    SetVolume(mLeftVolume, mRightVolume);
                }

                result = error == null;

                if (result)
                {
                    result = mAudioPlayer.PrepareToPlay();
                }
            }

            prepareHandler?.Invoke(assetName, result);
        }
Exemplo n.º 3
0
 public LocalPrepareListener(HandlePrepare prepareHandler)
 {
     mPrepareHandler = prepareHandler ?? throw new NullReferenceException("prepareHandler == null");
 }