TR
Başlangıç
45 · Gelişmiş UI

Medya oynatıcı

Video ve ses dosyalarını, tarayıcıdan tarayıcıya değişen yerleşik denetimler yerine temaya uyan tek bir denetim çubuğuyla oynatır: oynat/duraklat, konum çubuğu, süre, ses, hız ve tam ekran. JavaScript çalışmazsa tarayıcının kendi denetimleri görünür, dosya yine oynatılabilir.

PRO acun:media-player
Tam ekran düğmesi yalnızca tarayıcı izin verdiğinde görünür. Oynatıcıyı başka bir alan adından yüklenen bir iframe içinde kullanıyorsanız iframe'e allow="fullscreen" ekleyin; iPhone'da tam ekran, videonun kendi oynatıcısıyla açılır.
01

Video

src oynatılacak dosya, poster oynatma başlamadan önce görünen görsel, title ise oynatıcının ekran okuyucudaki adıdır. Çerçeve bulunduğu alanın genişliğini 16:9 oranında doldurur; başka bir oran için class="aspect-square" ya da class="aspect-[4/3]" verin. Videoya tıklamak oynatır ya da duraklatır. Oynatma sürerken fare birkaç saniye kıpırdamazsa denetimler kaybolur; fareyi oynatıcının üzerinde gezdirmek ya da klavyeyle bir denetime geçmek onları geri getirir.

CANLI ÖRNEK
<acun:media-player
    src="../assets/media/sample-video.mp4"
    poster="../assets/media/sample-poster.jpg"
    title="Tanıtım videosu"
/>
PropDeğerler
srcDosya adresi
posterKapak görseli (yalnızca video)
titleEkran okuyucu adı; varsayılan "Video oynatıcı"
02

Ses

audio verildiğinde oynatıcı tek satırlık bir çubuğa dönüşür: oynat düğmesi, geçen süre, konum çubuğu, toplam süre, ses ve hız. Alan daraldıkça önce ses düzeyi çubuğu, sonra hız seçimi gizlenir; bu karar ekran genişliğine göre değil oynatıcının kendi genişliğine göre verilir, dar bir yan sütunda da düzgün görünür. Açık ve koyu temaya uyar. Ses düzeninde kapak görseli, tam ekran ve altyazı düğmesi yoktur.

CANLI ÖRNEK
<acun:media-player audio src="../assets/media/sample-audio.wav" title="Akor örneği" />
PropDeğerler
audiotrue | false
titleEkran okuyucu adı; varsayılan "Ses oynatıcı"
03

Altyazılar ve kaynaklar

WebVTT altyazı dosyalarını <track> öğesi olarak bileşenin içine yazın. captions ya da subtitles türünde bir iz varsa denetim çubuğunda altyazı düğmesi belirir; default işaretli iz sayfa açılınca gösterilir. Birden çok iz verilirse düğme default olanı, yoksa ilkini açıp kapatır. Altyazıyı oynatıcı kendisi çizer: denetim çubuğunun üstünde durur, çubuk gizlenince aşağı iner. Aynı videoyu birden çok biçimde sunmak için src yerine sources verin; tarayıcı listede destekleyebildiği ilk dosyayı oynatır.

CANLI ÖRNEK
<acun:media-player
    :sources="[
        ['src' => '../assets/media/sample-video.webm', 'type' => 'video/webm'],
        ['src' => '../assets/media/sample-video.mp4', 'type' => 'video/mp4'],
    ]"
    poster="../assets/media/sample-poster.jpg"
    title="Altyazılı tanıtım"
>
    <track kind="captions" src="../assets/media/sample-captions-tr.vtt" srclang="tr" label="Türkçe" default>
</acun:media-player>
PropDeğerler
sources[['src' => …, 'type' => 'video/webm'], …] ya da düz adres dizisi
(içerik)<track> öğeleri; default işaretli iz açık başlar
04

Klavye ve erişilebilirlik

Odak oynatıcının içindeyken (videoya tıklandığında ya da Tab ile bir denetime geçildiğinde) Boşluk veya K oynatır ve duraklatır, ← → beş saniye geri ya da ileri sarar, ↑ ↓ sesi %10 değiştirir, M sesi kapatıp açar, F tam ekrana geçer, C altyazıyı açıp kapatır, Home ve End başa ya da sona gider. Ses düzeyi çubuğunda oklar, hız seçiminde tüm tuşlar o denetimin kendi işini yapar. Düğmelerin ekran okuyucu adı duruma göre değişir ("Oynat" / "Duraklat", "Sesi kapat" / "Sesi aç", "Tam ekran" / "Tam ekrandan çık"); konum çubuğu değerini "1:05 / 3:20" biçiminde okutur. Odak halkaları klavyeyle gezinirken hep görünür; işletim sisteminde hareket azaltma açıksa geçiş animasyonları kapanır. speeds hız seçimindeki değerleri belirler, muted ve loop medya öğesine olduğu gibi aktarılır.

CANLI ÖRNEK
<acun:media-player
    src="../assets/media/sample-video.mp4"
    poster="../assets/media/sample-poster.jpg"
    title="Klavye denemesi"
    :speeds="[1, 1.5, 2]"
    muted
    loop
/>
PropDeğerler
speedsHız listesi, ör. [1, 1.5, 2]; [] hız seçimini kaldırır
muted · loop · autoplayMedya öğesine aktarılır; tarayıcılar sesli otomatik oynatmayı çoğunlukla engeller
05

Livewire içinde

Bileşenin kökünde wire:ignore bulunur: sayfanın başka bir yeri güncellendiğinde Livewire oynatıcıya dokunmaz, oynatma kesilmez ve tarayıcının yerleşik denetimleri geri gelmez. Kaynağı değiştirmek için oynatıcıya kaynakla birlikte değişen bir wire:key verin; Livewire eski oynatıcıyı kaldırıp yenisini ekler. ended, play, pause gibi medya olayları kabarcıklanmadığı için köke .capture ile dinleyici ekleyin; örnekte video bitince bileşenin metodu çağrılır. id, class, wire:key, x-on:* ve data-* gibi ek öznitelikler kök öğeye eklenir.

BLADE
<div>
    <acun:media-player
        :src="$ders->video_url"
        :poster="$ders->kapak_url"
        :title="$ders->baslik"
        wire:key="ders-video-{{ $ders->id }}"
        x-on:ended.capture="$wire.tamamlandi()"
    />

    <acun:button wire:click="sonrakiDers" class="mt-4">Sonraki ders</acun:button>
</div>
API

Prop'lar ve slot'lar

Bileşenin kabul ettiği değerler.

PropVarsayılanAçıklama
srcnullMedya dosyasının adresi
sources[]Birden çok biçim: [['src' => …, 'type' => 'video/mp4'], …] ya da düz adres dizisi; tarayıcı desteklediği ilkini oynatır
posternullOynatma başlamadan görünen görsel (yalnızca video)
audiofalseVideo çerçevesi yerine tek satırlık ses çubuğu
titlenullEkran okuyucu adı; verilmezse "Video oynatıcı" ya da "Ses oynatıcı"
preloadmetadatanone | metadata | auto; medya öğesine aktarılır
autoplayfalseSayfa açılınca oynatmaya başlar; sesli otomatik oynatma çoğu tarayıcıda engellenir, muted ile kullanın
mutedfalseSessiz başlar
loopfalseBitince baştan başlar
speeds[0.5, 0.75, 1, 1.25, 1.5, 2]Hız seçimindeki değerler; [] hız seçimini gizler
(öznitelikler) — id, class, wire:key, x-on:*, data-* … kök öğeye eklenir (class birleştirilir); class içinde aspect-* varsa 16:9 oranı uygulanmaz
Slot'lar: varsayılan: medya öğesinin içine eklenen <track> (altyazı) ya da ek <source> öğeleri.
Acun UI · Medya oynatıcıDetaylı kullanım ve örnekler