Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.
0 oy
1.1k kez görüntülendi
ios development kategorisinde tarafından
Merhaba arkadaşlar,

Uygulama içinde download imkanı sunduğum bazı videolar var. Kullanıcı bunları indirebiliyor. İnen videolar uygulama dizinindeki documents altına kaydediliyor.
Şimdi bu videoları kullanıcıların instagram, whatsapp, Twitter ve Facebook gibi sosyal platformlarda paylaşabilmesini istiyorum.
1- Mümkün mü?
2- Videolar ile ilgili bir sınırlama (uzunluk ve boyut gibi) var mı?
3-  Paylaşım için videoların hangi konumda (Camera Roll vs.) olması gerekir?
4- Swift ile daha önce yapılmış, kullanımı kolay, tavsiye edebileceğiniz örnekler var mı?

Teşekkürler

1 cevap

+1 oy
tarafından
tarafından seçilmiş
 
En İyi Cevap
  • mümkündür.

  • boyut derken, cihaza kaydedilebilecek video boyutunu mu, yoksa paylaşımı yapacağın platformun izin verdiği paylaşım sınırlamalarını mı kastediyorsun.
    kullanıcı klasörüne cihaz depolama alanı izin verdiği ölçüde dosya kaydedebilirsin.

  • hiç farketmez, ister uygulama içerisinde camera roll içindeki bir video veya fotoğrafı, ister uygulama dizin altına kaydettiğin bir video veya fotoyu paylaşabilirsin.

  • UIActivityViewController bu içerikleri paylaşmak için en kolay ve etkili seçenek.
    basit bir örnek;
    https://www.raywenderlich.com/133825/uiactivityviewcontroller-tutorial

tarafından
Teşekkürler üstad.
Ek olarak;
Videolar genelde 2-3 dk. Paylaşmadan önce kullanıcıya bir video önizleme ekranı göstermek istiyorum. Videoda in out verebileceği bir önizleme ekranı  olsun ve videoyu istediği aralıklarda kesebilsin.

iOS, video seçiminden sonra, ilgili videonun belirli bir aralığını seçerek kesebileceğimiz  bir UI Control sunuyor mu? Yoksa biz mi kuruyoruz bu yapıyı? Eğer biz kuruyorsak acaba nasıl oluyor. Denediniz mi hiç?
tarafından
+1
UIActivityViewController, sadece dosyalarınızı paylaşabilmeniz için seçenekler sunan bir arayüzdür.
ön izleme ekranı veya bir video editörü için kendin bir şeyler yapmalısın.
Daha önce böyle birşey yapmadım, ama eminim git'de istediğine yakın kütüphaneler mevcuttur.
tarafından
Teşekkürler. Üstad böyle bir örnek hazırlayabilir misin? Ne kadar faydalı olur anlatamam.
Sadece bir video olsun mesela. Sonra onu seçince paylaşma ekranından instagram'ı seçelim. Daha sonra ise video editör açılsın. Aralık belirleyip yollayalım.
tarafından
Düzenlemeyi bir kenara bıraktım.   Amma velakin normal halde videoyu Facebook ve Twitter'a  bile gönderemedim. Sadece Instagram (60 sn ise) ve Whatsapp'a gidiyor. Facebook ve Twitter için herhalde UIActivityViewController dışında başka bir şey mi yapmak lazım?
tarafından
gönderebilmen lazım. UIActivityViewController içerisinde facebook ve twitter için paylaşım seçenekleri mi çıkmıyor, yoksa videomu yüklenmiyor?
tarafından
Facebook ve Twitter seçenekleri çıkmıyor. Cihazda denedim. İkisi de yüklü ama çıkmıyor üstad. Şöyle denedim:

//Cihazda  Uygulama dizinindeki Documents altındaki videonun yolunu yolunu gösteriyorum
let videoPathURL = URL(fileURLWithPath: videoPath)
let videoToShare = [videoPathURL]
let activityVC = UIActivityViewController(activityItems: videoToShare, applicationActivities: nil)
self.present(activityVC, animated: true, completion: nil)
tarafından
+1
şimdi denedim birşeyler mi değişti acaba diye ama ben de çalıştı. ilginç.
telefonun ayarlarları sayfasında yer alan sosyal medya hesapları bölümünde, hesabınla giriş yapmış durumdasın değil mi?
tarafından
Üstad sağolasın. Giriş yapmamıştım ben oradan. Ben AppStore'dan indirdiğim uygulamaları kullanıyordum. Peki giriş yapmadan o uygulamaların listelenmemesi normal mi? Yani sosyal medya hesapları bölümünde kullanıcı giriş yapmamış ama Facebook app yüklü kullanıyor.
tarafından
Facebook oldu. Ama Twitter olmuyor. Sende oluyor mu üstadım? Herhalde Twitter için upload api kurmak gerekiyor?
tarafından
+1
Evet, Twitter'a video kendi API'si ni kullanmadan gönderilemiyor mesela.
Paylaşmak istediğin her data, UIActivityViewController'da listelenen tüm paylaşım seçenekleri ile uyumlu olmayabilir.

Şurada UIActivityViewController'da listelenen default paylaşım seçenekleriyle hangi data tiplerini gönderebileceğine dair bir tablo var.

http://nshipster.com/uiactivityviewcontroller/
tarafından
Üstad sağolasın. Bir sorum daha olacak konuyla alakalı.
Şimdi ben bir ViewController oluşturdum bu paylaşımlar için. Özel bir tasarım yaptım. İçine de Instagram'ın logosunu ekledim. Kullanıcı bu logoya dokununca UIActivityViewController ekranı açılmadan acaba direkt olarak Instagram'da paylaşma popup dialog çıkabilir mi?
Ne kadar uğraştıysam önce  UIActivityViewController ekranı çıkyor ve  sonra bir daha instagram logosuna dokunuyor kullanıcı anca öyle açılıyor. Kısayoldan UIActivityViewControlleri hiç açmadan uygulamaların paylaşma ekranına erişim mümkün mü?
tarafından
+1
eğer paylaşacağın fotoğraflar aynı zamanda cihazın film rulosunda kayıtlıysa,
bir buton aksiyonuyla film rulosundaki fotoğrafı direkt instagram içerisinde post edilmek üzere URL Scheme hook ile açtırabilirsin.

eğer fotoğraf sadece uygulama içerisinde yer alıyorsa, instagram'da açmak için sadece iki seçeneğin var.
ya UIActivityViewController kullancaksın ya da UIDocumentInteractionController.
ikiside işlevsellik açısından aynı.

yani istediğin gibi tek buton hareketiyle direkt instagram'a yönlendirilmeyecektir kullanıcı.
önce paylaşım seçenekleri görüntülenecek ve daha sonra kullanıcı bu seçenekler içerisinden instagram'ı seçmek durumunda kalacaktır.

he öyle bişi yapılabilir. denemek lazım.
paylaşmak istediği fotoğraf önce cihazın film rulosuna kaydedilebilir.
daha sonra kaydedilen bu fotoğraf ilk başta belirttiğim gibi instagram URL hook'u kullanılarak instagramda açtırılabilir.
ama bu işlem tabiki her paylaşılacak fotoğrafın önce film rulosuna da kaydedilmesi durumunu doğuracaktır ki, bunun için de kullanıcıdan önce
"bu uygulama fotoğraflarınıza erişmek istiyor"
iznini alman gerekir.
tarafından
Sağolasın üstad. Çok açıklayıcı oldu yorumun. Deniyorum bakalım.
...