Blog Single

Öncelikle projemizde ilgili activity dosyanızın layout kısmında iken,

  • Yeni bir VideoView nesnesi oluşturuyoruz.

Örneğimizde video verisini internet üzerinden çekeceğiz, bu nedenden dolayı internet erişimi iznimizi AndroidManifest.xml üzerinde belirtmemiz gerekiyor.Aksi bir durumda zaten local storage'den çekeceğimiz için izin almamıza da gerek kalmayacaktır.

  • uses-permission android:name=android.permission.INTERNET

İlgili Activity class'ımızın onCreate methodu içerisindeyken, aşağıdaki kodları ekleyiniz;

  • String videoPath="http://www.leanbackplayer.com/videos/360p/big_buck_bunny_640x360_2.28.mp4";
    Uri uri= Uri.parse(videoPath);

    VideoView video=(VideoView)findViewById(R.id.videoView);

    MediaController mediaController = new MediaController(this);
    mediaController.setAnchorView(video);

    video.setMediaController(mediaController);
    video.setVideoURI(uri);
    video.start();

  • Ayrıca VideoView nesnenizin onPause, onResume methodlarını da tetikleyebilirsiniz.

    • //bu şekilde kullanabilmeniz için ise, VideoView video; şeklinde Global değişken olarak Class içerisinde tanımlama yapmanız gerekmektedir.

    • @Override
          public void onPause() {
              super.onPause();
              if (video!= null) {
                  video.pause();
              }
          }
          @Override
          public void onResume() {
              super.onResume();
              if (video != null) {
                  video.start();
              }
          }

    • Can alıcı bir detay daha; eğer video çalışır durumda iken, farklı bir uygulama penceresinde iken video devam eder, ses rahatsız edici olabilir. Bu durumdan dolayı video nesnenizde ilgili methodları override ediniz.

Uygulama başlık alanını kaldırmak için, yine ilgili activity class'ı içerisindeyken,onCreate methodunun içerisinde;

  • super.onCreate(savedInstanceState); den sonra,
  • ve setContentView'den önceki satır arasına
  • this.requestWindowFeature(Window.FEATURE_NO_TITLE); //başlık alanını kaldırır.

Video nesnenizin ilgili layout penceresinin açıldığı ilk zamanda yatay yada dikey boyutlarını ayarlayıp daha geniş bir şekilde gösterebilirsiniz. AndroidManifest.xml içerisindeyken;

  • ilgili Activity class'ının bulunduğu activity tag'i içerisine yatay genişlik için, android:screenOrientation="landscape" ekleyebilirsiniz.

İlgili layout xml içerisindeyken,

  • RelativeLayout seçili olduğuna emin olup ilgili özellikleri, relativelayout'a ekleyiniz;
    • android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="horizontal"
  • VideoView nesnenizin de RelativeLayout içerisinde olduğuna emin olup, aşağıdaki şekilde yapılandırınız;
    • android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:layout_alignParentLeft="true"
      android:layout_alignParentRight="true"
      android:layout_alignParentTop="true"

Eğer bir canlı yayın, Online TV gibi bir uygulama yazıyorsanız .m3u8 formatını VideoView ile oynatabileceğinizi unutmayın.

Ayrıca canlı yayın uygulamanızda Video'nun üzerine tıklandığında açılan içerisinde ileri,geri,stop ve resume gibi butonları kapsayan MediaController'a ihtiyaç duymayacağınızdan dolayı;

  • ilgili VideoView nesnenizde .setMediaController(null); olarak ihtiyaç duyduğunuzda kullanıp, MediaController nesnesinin gösterilmesini engelleyebilirsiniz.
Bu makaleyi paylaşın:
İstanbul'da yaşıyorum.Web üzerinde Frontend/Backend Geliştirmenin yanı sıra, Android Geliştirme, PHP/ASP.NET, C# Yazılım Uzmanlığı ve Java konuları işliyorum. Kod Şiirdir, onları seviyorum.

Bir yorum bırakın