Apple Platform Blocks - VisioForge Media Blocks SDK .Net¶
This section covers MediaBlocks specifically optimized for Apple platforms (iOS, macOS, tvOS).
Available Blocks¶
Audio Sources¶
- OSXAudioSourceBlock: macOS audio capture using Core Audio
-
IOSAudioSourceBlock: iOS audio capture
- See Audio Sources Documentation
Audio Sinks¶
- OSXAudioSinkBlock: macOS audio playback
-
IOSAudioSinkBlock: iOS audio playback
- See Audio Rendering Documentation
Video Sources¶
- IOSVideoSourceBlock: iOS camera capture
- See Video Sources Documentation
Video Encoders¶
- AppleProResEncoderBlock: Apple ProRes professional video codec
- See ProRes Encoder Documentation
Platform Requirements¶
- iOS: iOS 12.0 or later
- macOS: macOS 10.13 or later
- tvOS: tvOS 12.0 or later
Features¶
- Native integration with Apple frameworks (AVFoundation, Core Audio, Core Video)
- Hardware-accelerated processing on Apple Silicon and Intel Macs
- Optimized for low power consumption on mobile devices
- Support for high-quality ProRes encoding
- Integration with iOS camera and microphone permissions
Sample Code¶
iOS Camera Capture¶
var pipeline = new MediaBlocksPipeline();
// iOS video source
var videoSource = new IOSVideoSourceBlock(videoSettings);
// Process and display
var videoRenderer = new VideoRendererBlock(pipeline, VideoView1);
pipeline.Connect(videoSource.Output, videoRenderer.Input);
await pipeline.StartAsync();
macOS Audio Capture and Playback¶
var pipeline = new MediaBlocksPipeline();
// macOS audio source
var audioSource = new OSXAudioSourceBlock(audioSettings);
// macOS audio sink
var audioSink = new OSXAudioSinkBlock();
pipeline.Connect(audioSource.Output, audioSink.Input);
await pipeline.StartAsync();
ProRes Encoding¶
var pipeline = new MediaBlocksPipeline();
var fileSource = new UniversalSourceBlock(await UniversalSourceSettings.CreateAsync(new Uri("input.mp4")));
// Apple ProRes encoder
var proresSettings = new AppleProResEncoderSettings
{
Profile = ProResProfile.HQ
};
var proresEncoder = new AppleProResEncoderBlock(proresSettings);
pipeline.Connect(fileSource.VideoOutput, proresEncoder.Input);
// Output to MOV file
var movSink = new MOVSinkBlock(new MOVSinkSettings("output.mov"));
pipeline.Connect(proresEncoder.Output, movSink.CreateNewInput(MediaBlockPadMediaType.Video));
await pipeline.StartAsync();
Platforms¶
iOS, macOS, tvOS.
Related Documentation¶
- Sources - All source blocks including Apple-specific
- VideoEncoders - Video encoding including ProRes
- AudioRendering - Audio playback