Medya paylaşımı hakkında

Komik bir resim, bilgilendirici bir video veya ilgi çekici bir ses klibi olabilir. Kullanıcıların içerik paylaşmasını sağlamak, deneyimlerini zenginleştirir ve en iyi yollarını bulmaya çalışırsınız. Bu belgede, Android, iOS, Android ve iOS'te ihtiyacınız olan API'ler ve teknikler dahil.

Paylaşım için tasarlandı

Android'in tasarımı Amaçlar. Intent, yapılacak işlemin soyut bir açıklamasıdır. Amaçlar, uygulamaların bilgi sahibi olmadan birbirleriyle iletişim kurmasına olanak tanır bir araya gelmelerini sağlar.

Bir uygulama veri paylaşmak veya işlem başlatmak istediğinde içeriğin ve işlemin türünü belirtir. Android sistemi bir liste sunar alakalı uygulamalar arasından seçim yaparak kullanıcının hangi amaçla çalışacağını karar verebilirsiniz. Bu yaklaşım, iş birliğine dayalı bir ekosistemi teşvik eder.

Metin paylaşmak yalnızca birkaç satır koddan oluşur:

val sendIntent: Intent = Intent().apply {
    action = Intent.ACTION_SEND
    putExtra(Intent.EXTRA_TEXT, "This is my text to share.")
    type = "text/plain"
}

val shareIntent = Intent.createChooser(sendIntent, null)
startActivity(shareIntent)

createChooser satırında Android Sharesheet kullanıcı arayüzü görüntülenir. kullanıcıların, alakalı uygulama önerileri de dahil olmak üzere bilgileri insanlarla paylaşmasına olanak tanır tek bir dokunuşla. Android Sharesheet ile başka şeyler de yapabilirsiniz:

Android hakkında daha fazla bilgi için Diğer uygulamalara basit veriler gönderme başlıklı makaleye bakın Paylaşım sayfaları ve bunların nasıl kullanılacağı.

alan adının kullanıcıları için daha kolay ve hızlı hale getirmek üzere Doğrudan Paylaşım hedefleri sağlayın diğer uygulamaları kullanarak URL'leri, resimleri veya başka tür verileri uygulamanızla paylaşın. Doğrudan Paylaş, mesajlaşmadaki ve sosyal uygulamalardaki kişileri doğrudan sunarak çalışır Android Sharesheet üzerinden, kullanıcıların uygulamayı seçmesine ve kişiyi arayın.

Zengin içerik alma desteği OnReceiveContentListener. Bu API ile Düz ve stil özellikleri ayarlanmış metinden işaretlemeye kadar tüm içeriği almada kullanılacak kod resimler, videolar, ses dosyaları ve diğerleri. İçerik, resim klavyelerinden, sürükleyip bırakma veya panodan gelebilir.

Medya dosyalarını paylaşma

Intent'ler az miktarda veri içerebildiğinden Android Dosyalar için güvenli bir herkese açık kullanıcı adı içerme amaçları. Medya dosyaları şuradan güvenli bir şekilde paylaşılıyor: Uygulamanız aşağıdakileri içeriyor:

Güvenli bir şekilde nasıl paylaşacağınız hakkında daha fazla bilgi için Dosya paylaşma hakkında başlıklı makaleyi inceleyin. dosyası olarak da kaydedebilir.

Medyayı paylaşım için optimize etme

Uygulamanızdaki diğer kullanıcılarla veya başka bir uygulamada kullanmak istiyorsanız, yüksek kaliteli paylaşmaya istekli olmalıdır.

Kalite ve boyut arasındaki dengeyi kurma

Büyük medya dosyaları, bant genişliği ve depolama alanını hızlı bir şekilde tüketerek can sıkıcı gecikmeler ve kullanıcılarınızdan gelebilecek olası veri aşımları ücretiyle ilgili sorunlarınız olduğu anlamına gelir. Burada en iyi arkadaşınız kompresyondur.

  • Resim sıkıştırma: Aşağıdaki gibi modern resim sıkıştırma biçimlerinden yararlanın Geleneksele kıyasla daha üstün sıkıştırma oranları sunan WebP ve AVIF Önemli kalite kaybı olmayan JPEG'ler. Farklı kalitelerle denemeler yapın ayarları gözden geçirin.
  • Video sıkıştırma: AV1 veya H.265 (HEVC) teknolojisinin gücünden yararlanın kullanarak daha iyi sıkıştırma verimliliği sağlamak üzere mükemmel görsel kalite. Donanım kodlaması olup olmadığını kontrol edebilirsiniz. Android 10 ve sonraki sürümlerin yüklü olduğu cihazlarda mediaPerformanceClass ve cihazınızın neleri en iyi destekleyebileceğini belirleyin. Farklı kullanıcı tercihlerine ve ağ koşullarına hitap etmek için farklı çözünürlük seçenekleri sunabilirsiniz.
fun hasHardwareEncodingSupportFor(mimeType: String): Boolean {
    val codecList = MediaCodecList(REGULAR_CODECS)
    val codecInfos = codecList.codecInfos
    for ( codecInfo in codecInfos ) {
        if (!codecInfo.isEncoder()) {
            continue;
        }
        if (!codecInfo.isHardwareAccelerated()) {
            continue;
        }
        val types: Array<String> = codecInfo.getSupportedTypes()
        for (j in types.indices) {
            if (types[j].equals(mimeType, ignoreCase = true)) {
                return true
            }
        }
    }
    return false
}
// test for AV1 hardware encoding support
val hasAV1 = hasHardwareEncodingSupportFor("video/av01")

Medyayı uyarlama

Sosyal medya platformları genellikle görüntülü reklamlar için belirli boyutlar ve en boy oranları uygular. paylaşılan medya. Medya dosyalarını önceden yeniden boyutlandırıp kullandığınızda, beklenmedik sorunları giderdiğinizde en beğendikleri platformlarda paylaşım yapan kullanıcılara ulaşmasına yardımcı olur.

Kullanıcıların medyalarını nasıl optimize edebilecekleri konusunda net talimatlar ve rehberlik sağlayın inceleyin. Kodlama bit hızlarını ayarlama, örnekleme parametrelerini ayarlama, video biçimini seçme, uygun dosya boyutlarını seçme veya farklı paylaşım seçeneklerinin etkisini anlama ile ilgili ipuçları bulabilirsiniz.

Medyanın bulunabilirliğini artırma

Medyanıza başlıklar, açıklamalar ve etiketler gibi alakalı meta verileri ekleme dosyalar keşfedilebilirliğini artırabilir. Kullanıcıları kendi deneyimi daha da kişiselleştirmek için uygulamamı paylaşırken açıklamalar ve altyazılar kullanıyor.

Resimlere meta veri ekleme

Jetpack ExifInterface sınıfı JPEG, PNG ve WebP biçimlerinde meta veriler yazar. resim olarak ekleyebilirsiniz.

// sets the title of the image in the form of Exif data
val exif = ExifInterface(imageFile)
exif.setAttribute(ExifInterface.TAG_IMAGE_DESCRIPTION, "Beautiful sunset")
exif.saveAttributes()