Dostosowywanie

Aby kontrolować zachowanie Transformera, możesz skonfigurować opcje w interfejsie API lub całkowicie zastąpić niektóre funkcje, tworząc i przekazując niestandardowe implementacje interfejsów. Na tej stronie znajdziesz kilka przykładów.

Kontroluj konfigurację kodeka

Domyślnie Transformer powróci do obsługiwanej rozdzielczości, jeśli sprzętowy koder urządzenia nie zaakceptuje żądanej rozdzielczości wyjściowej. Na przykład Transformer może wyrównać szerokość i wysokość danych wyjściowych, aby były wielokrotnością liczby 2 lub 16, co jest często wymagane przez kodery sprzętowe. Możesz wyłączyć to działanie, tak aby Transformer zwracał błąd, jeśli nie może uzyskać wymaganej rozdzielczości wyjściowej:

Kotlin

transformerBuilder
    .setEncoderFactory(
        DefaultEncoderFactory.Builder(context)
            .setEnableFallback(false)
            .build())

Java

transformerBuilder
    .setEncoderFactory(
        new DefaultEncoderFactory.Builder(context)
            .setEnableFallback(false)
            .build());

I podobnie, DefaultEncoderFactory obsługuje też ustawienia niestandardowego kodowania z opcją setRequestedVideoEncoderSettings.

Możesz też całkowicie zastąpić fabryki koderów i dekoderów, aby mieć pełną kontrolę nad konfiguracją kodeków.

Filtry niestandardowe

Możesz ustawić niestandardowy modyfikator do zapisu w kontenerach multimediów, wywołując metodę Transformer.setMuxerFactory. Jeśli na przykład wdrożysz własny filtrujący na poziomie aplikacji, możesz napisać kod, który implementuje interfejs Muxer, a następnie użyć setMuxerFactory do wstrzyknięcia go do Transformera.