Transformator Media3 aktif dalam pengembangan dan kami ingin mendengar pendapat Anda. Kami menantikan masukan, permintaan fitur, dan laporan bug Anda di
Issue Tracker. Ikuti
blog ExoPlayer untuk informasi terbaru.
Penyesuaian
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Untuk mengontrol perilaku Transformer, Anda dapat mengonfigurasi opsi di platform API
atau mengganti bagian fungsi sepenuhnya dengan menulis implementasi kustom
antarmuka dan meneruskannya. Halaman ini menjelaskan beberapa contoh.
Mengontrol konfigurasi codec
Secara {i>default<i}, Transformer akan kembali
ke resolusi yang didukung jika
encoder perangkat keras tidak menerima resolusi {i>output<i} yang diminta. Sebagai
misalnya, Transformer dapat menyelaraskan lebar dan tinggi output menjadi kelipatan 2
atau 16 seperti yang sering diperlukan oleh encoder hardware. Anda dapat menonaktifkan perilaku ini
sehingga Transformer akan menampilkan error jika tidak dapat menghasilkan
resolusi output:
Kotlin
transformerBuilder
.setEncoderFactory(
DefaultEncoderFactory.Builder(context)
.setEnableFallback(false)
.build())
Java
transformerBuilder
.setEncoderFactory(
new DefaultEncoderFactory.Builder(context)
.setEnableFallback(false)
.build());
Demikian pula, DefaultEncoderFactory
juga mendukung penggunaan encoding kustom
setelan dengan opsi setRequestedVideoEncoderSettings
.
Anda juga dapat mengganti factory sepenuhnya untuk encoder dan decoder untuk mendapatkan
kendali penuh atas
bagaimana {i>codec<i} disiapkan.
Muxer kustom
Anda dapat menetapkan muxer kustom untuk menulis penampung media dengan memanggil
Transformer.setMuxerFactory
. Misalnya, jika Anda mengimplementasikan muxer Anda sendiri di
di level aplikasi, Anda dapat menulis wrapper yang mengimplementasikan Muxer
lalu gunakan setMuxerFactory
untuk memasukkannya ke dalam Transformer.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-07-27 UTC."],[],[],null,["# Customization\n\nTo control Transformer's behavior, you can configure options in the API surface\nor replace pieces of functionality completely by writing custom implementations\nof interfaces and passing those in. This page describes some examples.\n\nControl codec configuration\n---------------------------\n\nBy default, Transformer will fall back to a supported resolution if the\ndevice's hardware encoder doesn't accept the requested output resolution. For\nexample, Transformer can align the output width and height to be a multiple of 2\nor 16 as is often required by hardware encoders. You can turn off this behavior\nso that Transformer instead throws an error if it can't produce the required\noutput resolution: \n\n### Kotlin\n\n```kotlin\ntransformerBuilder\n .setEncoderFactory(\n DefaultEncoderFactory.Builder(context)\n .setEnableFallback(false)\n .build())\n```\n\n### Java\n\n```java\ntransformerBuilder\n .setEncoderFactory(\n new DefaultEncoderFactory.Builder(context)\n .setEnableFallback(false)\n .build());\n```\n\n\u003cbr /\u003e\n\nSimilarly, the `DefaultEncoderFactory` also supports using custom encoding\nsettings with the `setRequestedVideoEncoderSettings` option.\n\nYou can also completely replace the factories for encoders and decoders to get\nfull control over how the codecs are set up.\n\nCustom muxers\n-------------\n\nYou can set a custom muxer for writing media containers by calling\n`Transformer.setMuxerFactory`. For example, if you implement your own muxer at\nthe application level, you can write a wrapper that implements the `Muxer`\ninterface and then use `setMuxerFactory` to inject it into Transformer."]]