WebRTC - Mobil Destek

Mobil dünyada, WebRTC desteği masaüstlerindekiyle aynı seviyede değildir. Mobil cihazların kendi yöntemleri vardır, bu nedenle WebRTC, mobil platformlarda da farklı bir şeydir.

Masaüstü için bir WebRTC uygulaması geliştirirken, Chrome, Firefox veya Opera kullanmayı düşünüyoruz. Hepsi WebRTC'yi kutudan çıkar çıkmaz destekler. Genel olarak, sadece bir tarayıcıya ihtiyacınız var ve masaüstünün donanımı hakkında endişelenmenize gerek yok.

Mobil dünyada bugün WebRTC için üç olası mod vardır -

  • Yerel uygulama
  • Tarayıcı uygulaması
  • Yerel tarayıcı

Android

2013 yılında, Android için Firefox web tarayıcısı, kutudan çıkar çıkmaz WebRTC desteğiyle sunuldu. Artık Firefox mobil tarayıcısını kullanarak Android cihazlarda görüntülü görüşme yapabilirsiniz.

Üç ana WebRTC bileşenine sahiptir -

  • PeerConnection - tarayıcılar arasında aramaları etkinleştirir

  • getUserMedia - kamera ve mikrofona erişim sağlar

  • DataChannels - eşler arası veri aktarımı sağlar

Android için Google Chrome, WebRTC desteği de sağlar. Daha önce fark ettiğiniz gibi, en ilginç özellikler genellikle ilk olarak Chrome'da görünür.

Geçtiğimiz yıl Opera mobil tarayıcısı WebRTC desteği ile ortaya çıktı. Yani Android için Chrome, Firefox ve Opera'ya sahipsiniz. Diğer tarayıcılar WebRTC'yi desteklemez.

iOS

Maalesef WebRTC şu anda iOS'ta desteklenmiyor. WebRTC, Firefox, Opera veya Chrome kullanırken Mac'te iyi çalışsa da, iOS'ta desteklenmez.

Günümüzde WebRTC uygulamanız, kutudan çıktığı anda Apple mobil cihazlarda çalışmayacaktır. Ama bir tarayıcı var - Bowser. Ericsson tarafından geliştirilmiş bir web tarayıcısıdır ve WebRTC'yi kutudan çıkar çıkmaz destekler. Ana sayfasını şu adresten kontrol edebilirsiniz:http://www.openwebrtc.org/bowser/.

Bugün, iOS'ta WebRTC uygulamanızı desteklemenin tek kolay yolu budur. Başka bir yol da yerel bir uygulamayı kendiniz geliştirmektir.

Windows Telefonları

Microsoft, mobil platformlarda WebRTC'yi desteklemez. Ancak IE'nin gelecekteki sürümlerinde ORTC'yi (Object Realtime Communications) uygulayacaklarını resmi olarak onayladılar. WebRTC 1.0'ı desteklemeyi planlamıyorlar. ORTC'lerini WebRTC 1.1 olarak etiketlediler, ancak bu sadece bir topluluk geliştirmesi ve resmi standart değil.

Yani bugün Window Phone kullanıcıları WebRTC uygulamalarını kullanamıyor ve bu durumu yenmenin bir yolu yok.

Böğürtlen

WebRTC uygulamaları da hiçbir şekilde Blackberry'de desteklenmemektedir.

WebRTC Yerel Tarayıcı Kullanma

Kullanıcıların WebRTC'yi kullanması için en uygun ve rahat durum, cihazın yerel tarayıcısını kullanmaktır. Bu durumda, cihaz herhangi bir ek konfigürasyonda çalışmaya hazırdır.

Bugün yalnızca sürüm 4 veya üzeri olan Android cihazlar bu özelliği sağlamaktadır. Apple hala WebRTC desteğiyle herhangi bir etkinlik göstermiyor. Yani Safari kullanıcıları WebRTC uygulamalarını kullanamaz. Microsoft ayrıca bunu Windows Phone 8'de tanıtmadı.

Tarayıcı Uygulamaları aracılığıyla WebRTC'yi Kullanma

Bu, WebRTC özelliklerini sağlamak için üçüncü taraf uygulamaları (yerel olmayan web tarayıcıları) kullanmak anlamına gelir. Şimdilik, bu tür iki üçüncü taraf uygulaması var. WebRTC özelliklerini iOS cihaza getirmenin tek yolu olan Bowser ve Android platformu için güzel bir alternatif olan Opera. Mevcut mobil tarayıcıların geri kalanı WebRTC'yi desteklemez.

Yerel Mobil Uygulamalar

Gördüğünüz gibi, WebRTC henüz mobil dünyada büyük bir desteğe sahip değil. Dolayısıyla, olası çözümlerden biri, WebRTC API'sini kullanan yerel bir uygulama geliştirmektir. Ancak, ana WebRTC özelliği çapraz platform çözümü olduğu için daha iyi bir seçim değildir. Her neyse, bazı durumlarda bu tek yoldur çünkü yerel bir uygulama cihaza özgü işlevleri veya HTML5 tarayıcıları tarafından desteklenmeyen özellikleri kullanabilir.

Mobil ve Masaüstü Cihazlar için Video Akışını Kısıtlama

GetUserMedia API'sinin ilk parametresi , tarayıcıya akışları nasıl işleyeceğini söyleyen bir anahtarlar ve değerler nesnesi bekler. Tüm kısıtlamaları şu adresten kontrol edebilirsiniz:https://tools.ietf.org/html/draft-alvestrand-constraints-resolution-03. Video en boy oranını, frameRate'i ve diğer isteğe bağlı parametreleri ayarlayabilirsiniz.

Mobil cihazların desteklenmesi en büyük sorunlardan biridir çünkü mobil cihazlar sınırlı kaynakların yanı sıra sınırlı ekran alanına sahiptir. Güç ve bant genişliğinden tasarruf etmek için mobil cihazın yalnızca 480x320 çözünürlükte veya daha küçük bir video akışını yakalamasını isteyebilirsiniz. Tarayıcıdaki kullanıcı aracısı dizesini kullanmak, kullanıcının bir mobil cihazda olup olmadığını test etmenin iyi bir yoludur. Bir örnek görelim. İndex.html dosyasını oluşturun -

<!DOCTYPE html> 
<html lang = "en">
 
   <head> 
      <meta charset = "utf-8" /> 
   </head> 
	
   <body> 
      <video autoplay></video> 
      <script src = "client.js"></script> 
   </body>
	
</html>

Ardından aşağıdaki client.js dosyasını oluşturun -

//constraints for desktop browser 
var desktopConstraints = { 

   video: { 
      mandatory: { 
         maxWidth:800,
         maxHeight:600   
      }  
   }, 
	
   audio: true 
}; 
 
//constraints for mobile browser 
var mobileConstraints = { 

   video: { 
      mandatory: { 
         maxWidth: 480, 
         maxHeight: 320, 
      } 
   }, 
	
   audio: true 
}
  
//if a user is using a mobile browser 
if(/Android|iPhone|iPad/i.test(navigator.userAgent)) { 
   var constraints = mobileConstraints;   
} else { 
   var constraints = desktopConstraints; 
}
  
function hasUserMedia() { 
   //check if the browser supports the WebRTC 
   return !!(navigator.getUserMedia || navigator.webkitGetUserMedia || 
      navigator.mozGetUserMedia); 
}
  
if (hasUserMedia()) {
  
   navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || 
      navigator.mozGetUserMedia;
	
   //enabling video and audio channels 
   navigator.getUserMedia(constraints, function (stream) { 
      var video = document.querySelector('video');
		
      //inserting our stream to the video tag     
      video.src = window.URL.createObjectURL(stream);
		
   }, function (err) {}); 
} else { 
   alert("WebRTC is not supported"); 
}

Statik komutu kullanarak web sunucusunu çalıştırın ve sayfayı açın. 800x600 olduğunu görmelisiniz. Ardından bu sayfayı krom araçlarını kullanarak bir mobil görünümde açın ve çözünürlüğü kontrol edin. 480x320 boyutunda olmalıdır.

Kısıtlamalar, WebRTC uygulamanızın performansını artırmanın en kolay yoludur.

Özet

Bu bölümde, mobil cihazlar için WebRTC uygulamaları geliştirirken ortaya çıkabilecek sorunları öğrendik. Mobil platformlarda WebRTC API'yi desteklemenin farklı sınırlamalarını keşfettik. Ayrıca masaüstü ve mobil tarayıcılar için farklı kısıtlamalar belirlediğimiz bir demo uygulaması başlattık.