Skip to content

PAM Native Video

Every PAM Native product runs on the PAM runtime. Install and verify PAM first, create a Native application, and add this package through PAM Composer:

Terminal window
curl -fsSL https://github.com/push-in/pam/releases/latest/download/install.sh | sh
pam doctor
pam init my-app --template native
cd my-app
pam composer require pushinbr/pam-native-video
pam doctor
pam native dev
return VideoPlayer::make('https://cdn.example.com/master.m3u8')
->autoPlay()
->controls()
->resizeMode(VideoResizeMode::Cover)
->onEvent(fn (VideoEventKind $kind, array $event) => $this->handle($kind, $event));

VideoPlayer owns native adaptive/local playback; VideoResizeMode selects contain/cover/fill; VideoEventKind reports prepared/progress/completion/ failure; VideoPlaybackState tracks lifecycle. Subtitle/audio tracks, looping, mute/volume, revision-based seek, and sandboxed local files are supported.

Prefer adaptive manifests for variable networks, keep progress intervals coarse, make seek an intentional state revision rather than every render, and pause/release with screen visibility. Android uses Media3 1.9.3; iOS uses AVFoundation/AVKit.

VideoPluginProvider registers VideoPlayer automatically.