Mobil Programlama

iOS

iOS Uygulamalarında Video Oynatmak

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

Uygulamanızda bir video dosyası göstermeniz gerekirse MediaPlayer Framework'ten faydalanabilirsiniz. MediaPlayer yerel ya da online çeşitli ses ve video dosyalarını oynatmanızda size yardımcı olacaktır. Bunun için projenize MediaPlayer Framework eklemeniz gerekir.

Şimdi basit bir uygulama hazırlayarak MediaPlayer ile bir video dosyasını nasıl çalıştıracağımızı göstereceğiz. Öncelikle basit bir arayüz oluşturalım. Bir düğmeyi ekrana sürükleyerek düğmeye IBAction tipinde bir metod ataması yapıyoruz.

playVideoAction: Düğmeye basıldığında hareket geçecek metodu anlatır. Bir sonraki adımda metodumuzu .h dosyasında tanımlayalım ve MediaPlayer Framework’ü kullanmak amacıyla gerekli işlemleri gerçekleştirelim:

// ViewController.h
//  VideoOynat
//  Created by Ozan Uysal on 9/11/13.

#import 
#import 

@interface ViewController : UIViewController

- (IBAction) playVideoAction:(id)sender;

@end

iOS ortamı video oynatma işlemini kolaylaştırmak için UIViewController'dan üretilmiş bir sınıf olan MPMoviePlayerViewController sınıfını sunmaktadır. Bu sınıf, oynatılmasını istediğiniz bir video dosyasını otomatik olarak oynatmaya başlar. Dosya yerel bir kaynakta ya da çevrimiçi bir sitede bulunuyor olabilir.

Aşağıda playVideoAction: metodunun uygulanması görünmektedir:

- (IBAction) playVideoAction:(id)sender {
    NSURL *fileUrl = [NSURL URLWithString:[NSString stringWithFormat:@"%@/turkcellgyreklam.mp4",SERVER_ADDRESS]];
    MPMoviePlayerViewController *moviePlayerController = [[MPMoviePlayerViewController alloc] initWithContentURL:fileUrl];
    moviePlayerController.moviePlayer.repeatMode = MPMovieRepeatModeOne;
    [self presentMoviePlayerViewControllerAnimated:moviePlayerController];
    [moviePlayerController.moviePlayer play];
}

Yukarıdaki örnekte uzaktaki bir sunucuda yer alan fon_kol.mov dosyası oynatıldı. Daha sonra MPMoviePlayerController presentMoviePlayerViewControllerAnimated: metoduyla çağırılarak video oynatıcı başlatıldı ve ekrana videomuz kontrol düğmeleriyle birlikte getirildi. Videonun başlaması içinse moviePlayer değişkeni içerisinde yer alan play metodu çağırıldı.

MPMoviePlayerViewController içerisinde yer alan moviePlayer özelliği ise video oynatıcı ile ilgili bazı özelliklere müdahale etmenize yarar. MPMoviePlayerController sınıfı videoyu oynatmaya yarayan asıl sınıftır ve başlıca özellikleri aşağıdaki gibidir;

  • contentURL : Dosyanın konumu.
  • movieSourceType : Kaynağın bir dosyadan ya da bir akıştan (stream) gelmesi.
  • allowsAirPlay : Wifi üzerinden diğer Apple cihazlarından oynatmaya izin verilmesi.
  • fullscreen : Tam ekran oynatma.
  • duration : Video süresi.
  • repeatMode : Tekrar etme modu (1 kere oynat ya da sonsuz döngü).
  • thumbnailImageAtTime:timeOption: Videodan belirli bir süreye ait ekran görüntüsü alınması.

 

Uyarı : iOS içerisinde gelen bu dâhili video oynatıcı bütün video formatlarını desteklememektedir. .mov, .mp4, .mpv ve .3gp dosya formatları ile H.264 ve MPEG-4 standartları desteklenir. Eğer videonuz başka sıkıştırma formatları ile oluşturulduysa alternatif video oynatıcılara yönelmenizi tavsiye ederiz.

 

ViewController.m dosyasının tamamı aşağıdaki gibidir:

// ViewController.m
//  VideoOynat
//  Created by Ozan Uysal on 9/11/13.

#import "ViewController.h"

#define SERVER_ADDRESS @"http://SUNUCU_ADRESI"

@interface ViewController ()

@end

@implementation ViewController

- (IBAction) playVideoAction:(id)sender {
    NSURL *fileUrl = [NSURL URLWithString:[NSString stringWithFormat:@"%@/turkcellgyreklam.mp4",SERVER_ADDRESS]];
    MPMoviePlayerViewController *moviePlayerController = [[MPMoviePlayerViewController alloc] initWithContentURL:fileUrl];
    moviePlayerController.moviePlayer.repeatMode = MPMovieRepeatModeOne;
    [self presentMoviePlayerViewControllerAnimated:moviePlayerController];
    [moviePlayerController.moviePlayer play];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end