Pertanyaan Apakah ada cara untuk memilih bit rate saat menggunakan AVPlayer untuk streaming audio langsung HTTP?


Saya menggunakan AVPlayer untuk mengalirkan konten audio yang dikirim dalam dua format kualitas.

Masalahnya adalah bahwa ketika berpindah dari format yang lebih rendah ke yang lebih tinggi (dilakukan secara otomatis oleh kerangka ketika wi-fi tersedia) ada penundaan saat bermain.

Apakah ada cara untuk memilih secara manual kualitas yang diinginkan untuk mencegah penundaan itu?


10
2018-03-16 15:24


asal


Jawaban:


Memperbarui: Sebelum Anda memilih ini, harap dicatat bahwa itu adalah jawaban yang akurat dan diterima pada saat itu selama iOS 4. Untuk jawaban iOS 8 yang diperbarui, Lihat disini.


Saya telah meneliti pertanyaan ini untuk diri saya sendiri dan belum menemukan jawaban yang berarti saya cukup positif tidak ada cara untuk melakukan ini. Dokumen Apple tidak selalu memberikan semua rincian tentang apa yang dapat Anda lakukan dengan hal-hal tetapi jika Anda melihat semua properti yang tersedia, metode, dll Anda akan menemukan bahwa tidak ada yang memungkinkan Anda untuk men-tweak stream.

Saya pikir ini adalah inti dari HLS. Apple ingin pengguna iPhone memiliki pengalaman streaming terbaik. Jika mereka memberi pengembang kontrol untuk menyesuaikan aliran mana yang digunakan, maka itu akan mengalahkan tujuan. Sistem ini tahu yang terbaik ketika beralih ke streaming. Jika telepon tidak dapat menangani bandwidth tambahan maka tidak akan (atau tidak seharusnya) beralih ke aliran yang lebih tinggi. Beberapa hal yang saya temukan yang mungkin ingin Anda lihat ...

Apakah file Anda dibagi menjadi 10 detik? Jika lebih dari itu, Anda mungkin ingin memendekkannya.

Beberapa program konversi file tidak mendapatkan bit rate tepat dan jika itu yang terjadi pada ponsel Anda mungkin berpikir memiliki bandwidth untuk, katakanlah, umpan 96 kbps tetapi kenyataannya feed Anda adalah 115 kbps. Lihatlah jawaban yang diterima dalam posting ini: iPhone - Aplikasi Ditolak lagi, umpan basis HTTP Live Streaming 64kbps


5
2018-03-31 12:39



Sekarang mungkin di iOS8.

Periksa preferredPeakBitRate di AVPlayerItem.

Mengikuti salinan dari dokumentasi Apple:

Batas yang diinginkan, dalam bit per detik, konsumsi bandwidth jaringan untuk item ini.
  SWIFT: var preferredPeakBitRate: Double
  OBJECTIVE-C: @property (nonatomic) ganda lebih disukaiPeakBitRate

  Set preferPeakBitRate ke bukan nol untuk menunjukkan bahwa pemain harus mencoba untuk membatasi pemutaran item ke bit rate, diekspresikan dalam bit per detik.

  Jika konsumsi bandwidth jaringan tidak dapat diturunkan untuk memenuhi preferensiPeakBitRate, itu akan berkurang sebanyak mungkin sambil terus memutar item.


16
2017-10-02 12:15



Gunakan Pantomime, adalah kerangka kerja ringan untuk iOS, OSX, dan tvOS yang dapat membaca dan mengurai manifes HTTP Live Streaming. Pantomim


0
2018-05-07 04:45