Skip to content

Apple Platform Blocks - VisioForge Media Blocks SDK .Net

Media Blocks SDK .Net

This section covers MediaBlocks specifically optimized for Apple platforms (iOS, macOS, tvOS).

Available Blocks

Audio Sources

Audio Sinks

Video Sources

Video Encoders

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.