Media3 Transformer şu anda geliştirme aşamasındadır ve sizden haber bekliyoruz. Geri bildirimlerinizi, özellik isteklerinizi ve hata raporlarınızı
sorun izleyicide bulabilirsiniz. En son güncellemeler için
ExoPlayer blogunu takip edin.
Çok öğeli düzenleme
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Transformer'ı kullanarak videolar, medya öğeleri ve daha fazlası dahil olmak üzere
resim ve ses dosyalarını kullanarak Composition
oluşturun.
Besteyi Dışa Aktarma
Dönüşümleri uygulamak için
(ör. efektler veya kırma düzenlemeleri) MediaItem
haline getirmek için
EditedMediaItem
değeri gösterilir.
Ardından EditedMediaItem
nesne birleştirilecek şekilde
EditedMediaItemSequence
Örneğin, iki düzenlenmiş bir EditedMediaItemSequence
oluşturabilirsiniz
videolar. EditedMediaItemSequence
içindeki öğeler sırayla sıralanır ve
zamanla örtüşmemesidir.
Composition
, bir veya daha fazla EditedMediaItemSequence
öğesinin kombinasyonudur
nesneler'i tıklayın. Composition
içindeki EditedMediaItemSequence
nesnenin tümü karışık
video ve işitsel öğeleri birleştirmenize olanak tanır.
Composition
nesne, Dönüştürücü kullanılarak dışa aktarılabilir.
Burada, iki öğeden oluşan bir video öğesinin oluşturulmasına ve dışa aktarılmasına dair
düzenlenmiş video klipler, üzerine bir ses parçası yerleştirilmiş:
Kotlin
val transformer = ... // Set up Transformer instance
val video1 = EditedMediaItem.Builder(
MediaItem.fromUri(video1Uri))
.build()
val video2 = EditedMediaItem.Builder(
MediaItem.fromUri(video2Uri))
.build()
val videoSequence = EditedMediaItemSequence(
video1, video2)
val backgroundAudio = EditedMediaItem.Builder(
MediaItem.fromUri(audioUri))
.build()
val backgroundAudioSequence = EditedMediaItemSequence(
ImmutableList.of(backgroundAudio),
/* isLooping= */ true) // Loop audio track through duration of videoSequence
val composition = Composition.Builder(
videoSequence,
backgroundAudioSequence)
.build()
val filePath = ... // Provide file path to save Composition
transformer.start(composition, filePath)
Java
Transformer transformer = ... // Set up Transformer instance
EditedMediaItem video1 = new EditedMediaItem.Builder(
MediaItem.fromUri(video1Uri))
.build();
EditedMediaItem video2 = new EditedMediaItem.Builder(
MediaItem.fromUri(video2Uri))
.build();
EditedMediaItemSequence videoSequence = new EditedMediaItemSequence(
video1, video2);
EditedMediaItem backgroundAudio = new EditedMediaItem.Builder(
MediaItem.fromUri(audioUri))
.build();
EditedMediaItemSequence backgroundAudioSequence = new EditedMediaItemSequence(
ImmutableList.of(backgroundAudio),
/* isLooping= */ true); // Loop audio track through duration of videoSequence
String filePath = ... // Provide file path to save Composition
Composition composition = new Composition.Builder(
videoSequence,
backgroundAudioSequence)
.build();
transformer.start(composition, filePath);
Desteklenen kullanım alanlarına örnekler
Bu, Transformer API'nin kullandığı kullanım alanlarının (olası her durumu içermeyen bir listesidir)
bestelerle destekler:
- Ses, resim ve video öğelerini sırayla birleştirme. Ancak tüm öğeler
aynı parçalara sahip olmalıdır. Örneğin, bir reklam dizisi oluşturma
(yalnızca ses dosyası ve ardından bir video dosyası içeren videolar)
- Video öğesine arka plan sesi ekleme.
- Besteye efekt ekleme.
- Görsel kalitede daha iyi SDR çıkışı oluşturmak için HDR girişi SDR'ye ton eşleme.
Mevcut sınırlamalar
Bir bestedeki adım sıraları, şurada belirtilen koşulları karşılamalıdır:
Transformer.start()
.
Ayrıca,
Besteler:
EditedMediaItemSequence
oynatma belirli bir ofsetle başlatılıyor.
- Çapraz geçişli video veya ses parçaları
Özellik istekleri
Transformer API için özellik istekleriniz varsa
Media3 GitHub deposu.
Aksi belirtilmediği sürece bu sayfanın içeriği Creative Commons Atıf 4.0 Lisansı altında ve kod örnekleri Apache 2.0 Lisansı altında lisanslanmıştır. Ayrıntılı bilgi için Google Developers Site Politikaları'na göz atın. Java, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],null,["# Multi-asset editing\n\nUsing Transformer, you can combine multiple media assets, such as videos,\nimages, and audio files to create a `Composition`.\n\nExporting a Composition\n-----------------------\n\nTo apply [transformations](/media/media3/transformer/transformations)\n(such as effects or trimming edits) to a `MediaItem`, you should create an\n[`EditedMediaItem`](/reference/androidx/media3/transformer/EditedMediaItem)\nto represent the asset that has the transformations applied to it.\n\n`EditedMediaItem` objects can then be concatenated together to create an\n[`EditedMediaItemSequence`](/reference/androidx/media3/transformer/EditedMediaItemSequence).\nFor example, you can create an `EditedMediaItemSequence` with two edited\nvideos. Items inside an `EditedMediaItemSequence` are ordered sequentially and\ndon't overlap in time.\n\nA `Composition` is the combination of one or more `EditedMediaItemSequence`\nobjects. All `EditedMediaItemSequence` objects in the `Composition` are mixed\ntogether, allowing you to combine video and audio assets.\n\n`Composition` objects can be exported using Transformer.\n\nHere is an example of creating and exporting a video asset that consists of two\nedited video clips, overlaid with an audio track: \n\n### Kotlin\n\n```kotlin\nval transformer = ... // Set up Transformer instance\n\nval video1 = EditedMediaItem.Builder(\n MediaItem.fromUri(video1Uri))\n .build()\n\nval video2 = EditedMediaItem.Builder(\n MediaItem.fromUri(video2Uri))\n .build()\n\nval videoSequence = EditedMediaItemSequence(\n video1, video2)\n\nval backgroundAudio = EditedMediaItem.Builder(\n MediaItem.fromUri(audioUri))\n .build()\n\nval backgroundAudioSequence = EditedMediaItemSequence(\n ImmutableList.of(backgroundAudio),\n /* isLooping= */ true) // Loop audio track through duration of videoSequence\n\nval composition = Composition.Builder(\n videoSequence,\n backgroundAudioSequence)\n .build()\n\nval filePath = ... // Provide file path to save Composition\n\ntransformer.start(composition, filePath)\n```\n\n### Java\n\n```java\nTransformer transformer = ... // Set up Transformer instance\n\nEditedMediaItem video1 = new EditedMediaItem.Builder(\n MediaItem.fromUri(video1Uri))\n .build();\n\nEditedMediaItem video2 = new EditedMediaItem.Builder(\n MediaItem.fromUri(video2Uri))\n .build();\n\nEditedMediaItemSequence videoSequence = new EditedMediaItemSequence(\n video1, video2);\n\nEditedMediaItem backgroundAudio = new EditedMediaItem.Builder(\n MediaItem.fromUri(audioUri))\n .build();\n\nEditedMediaItemSequence backgroundAudioSequence = new EditedMediaItemSequence(\n ImmutableList.of(backgroundAudio),\n /* isLooping= */ true); // Loop audio track through duration of videoSequence\n\nString filePath = ... // Provide file path to save Composition\n\nComposition composition = new Composition.Builder(\n videoSequence,\n backgroundAudioSequence)\n .build();\n\ntransformer.start(composition, filePath);\n```\n\n\u003cbr /\u003e\n\nExamples of supported use cases\n-------------------------------\n\nThis is a non-exhaustive list of use cases that the Transformer API\nsupports with Compositions:\n\n- Sequentially combining audio, image, and video assets. However, all items in a sequence must have the same tracks. For example, you cannot have a sequence that contains an audio only file, followed by a video file.\n- Adding background audio to a video asset.\n- Adding effects to a Composition.\n- Tone mapping HDR input to SDR to generate better visual quality SDR output.\n\nCurrent limitations\n-------------------\n\nSequences within a Composition must meet the conditions outlined in\n[`Transformer.start()`](/reference/androidx/media3/transformer/Transformer#start(androidx.media3.transformer.Composition,java.lang.String)).\nFurthermore, the following operations are not yet supported when working with\nCompositions:\n\n- Starting playback of an `EditedMediaItemSequence` with an offset.\n- Crossfading video or audio tracks\n\nFeature requests\n----------------\n\nIf you have any feature requests for the Transformer API, file an issue on the\n[Media3 GitHub repository](https://github.com/androidx/media/issues)."]]