unsafe AVAudioMix CreateAudioMix () { AVMutableAudioMix audioMix = AVMutableAudioMix.Create (); AVMutableAudioMixInputParameters audioMixInputParameters = AVMutableAudioMixInputParameters.FromTrack (audioAssetTrack); var callbacks = new MTAudioProcessingTapCallbacks (TapProcess) { Initialize = TapInitialization, Finalize = Finalaze, Prepare = TapPrepare, Unprepare = Unprepare, }; audioProcessingTap = new MTAudioProcessingTap (callbacks, MTAudioProcessingTapCreationFlags.PreEffects); audioMixInputParameters.AudioTapProcessor = audioProcessingTap; audioMix.InputParameters = new AVAudioMixInputParameters[] { audioMixInputParameters }; return audioMix; }
unsafe AVAudioMix CreateAudioMix() { AVMutableAudioMix audioMix = AVMutableAudioMix.Create(); AVMutableAudioMixInputParameters audioMixInputParameters = AVMutableAudioMixInputParameters.FromTrack(audioAssetTrack); var callbacks = new MTAudioProcessingTapCallbacks(TapProcess) { Initialize = TapInitialization, Finalize = Finalaze, Prepare = TapPrepare, Unprepare = Unprepare, }; audioProcessingTap = new MTAudioProcessingTap(callbacks, MTAudioProcessingTapCreationFlags.PreEffects); audioMixInputParameters.AudioTapProcessor = audioProcessingTap; audioMix.InputParameters = new AVAudioMixInputParameters[] { audioMixInputParameters }; return(audioMix); }
public unsafe void Initialization() { TestRuntime.AssertSystemVersion(ApplePlatform.MacOSX, 10, 9, throwIfOtherPlatform: false); var cb = new MTAudioProcessingTapCallbacks( delegate(MTAudioProcessingTap tap, nint numberFrames, MTAudioProcessingTapFlags flags, AudioBuffers bufferList, out nint numberFramesOut, out MTAudioProcessingTapFlags flagsOut) { numberFramesOut = 2; flagsOut = MTAudioProcessingTapFlags.StartOfStream; }); cb.Initialize = delegate(MTAudioProcessingTap tap, out void *tapStorage) { tapStorage = (void *)44; }; IntPtr handle; using (var res = new MTAudioProcessingTap(cb, MTAudioProcessingTapCreationFlags.PreEffects)) { handle = res.Handle; Assert.AreEqual(44, (int)res.GetStorage()); Assert.That(CFGetRetainCount(handle), Is.EqualTo((nint)1), "RC"); } }