• 01-02-2017, 10:33:04
    #1
    Arkadaşlar Libgdx ile herhangi bir formatta (mp4, avi, mkv) video oynatma imkanı varmı?
    IOS tarafı için AVPlayer implemente etmeye çalışıyorum, core tarafından videoyu çağırdığımda videonun sesi geliyor ama ekrana görüntü gelmiyor. aynı problem android tarafında da var.
    ne badlogicgames komünitesinde nede github da bir çözüm bulamadım.
  • 01-02-2017, 21:43:55
    #2
    hocam libgdx'in deskop ve android için hazır classı var "gdx.video" diye. Ama ios desteği yok. Bildiğiniz gibi siz ios tarafından kendi class yapınızı libgdx içeriğine enjekte etmeniz gerekli. Anladığım kadarıyla siz bunu yapmışsınız, fakat ses geliyor görüntü gelmiyorsa libgdx'in ekranı video ekranının üzerine çıkıyor demektir. Şuan deneme imkanım olmadığı için belki fikir verir diye yazıyorum kolay gelsin.
  • 02-02-2017, 12:19:21
    #3
    yok @fmetinkaya hocam ne denediysem olmadı.
  • 02-02-2017, 16:26:40
    #4
    hocam ios-moe kullandığınızı tahmin ediyorum, çünkü robovm ölü durumda şuan. Yapacağınız işlemin mantığı şu olacak "media player olan bir ekranı ios tarafında tasarlayıp libgdx projenize ekleyeceksiniz, video izletmek istediğinizde bu ekranı libgdx içinden çağıracaksınız"

    Moe yeni yeni gelişmeye başladığı için bi çok problemle karşılaşmanız olası, ama buradaki arkadaş adım adım anlatmış umarım faydalı olur. https://software.intel.com/en-us/for...e/topic/672163

    http://multi-os-engine.github.io/doc...hirdparty.html
  • 02-02-2017, 17:01:51
    #5
    yok @fmetinkaya hocam robovm kullanıyorum.

    hocam yaptığım şey şu

    önce core tarafında handler interface oluşturdum.

    public interface AVPlayerHandler {
        public void showVideo();
    }
    sonra ios tarafında bu handler interfacesi aşağıdaki gibi implement ettim ve normalde xcode da kullandığım çalışan kodu java ya göre uyarladım.

    import com.xyz.app.IOSAdapters.AVPlayerHandler;
    import org.robovm.apple.avfoundation.*;
    import org.robovm.apple.avkit.AVPlayerViewController;
    import org.robovm.apple.coregraphics.CGRect;
    import org.robovm.apple.foundation.NSURL;
    
    public class AVPlayerIOS implements AVPlayerHandler {
    
        protected AVPlayer avPlayer;
        protected AVPlayerItem avPlayerItem;
        protected AVPlayerLayer avPlayerLayer;
        protected AVPlayerViewController avPlayerViewController;
    
        @Override
        public void showVideo() {
             NSURL nsurl = new NSURL("https://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4");
    
             avPlayerItem = new AVPlayerItem(nsurl);
             avPlayer = new AVPlayer(avPlayerItem);
             avPlayerLayer = new AVPlayerLayer(avPlayer);
            avPlayerLayer.setFrame(new CGRect (50, 300, 200, 200));
             avPlayerViewController = new AVPlayerViewController();
    
    avPlayerLayer.setBounds(new CGRect(0,0,300,500));
             avPlayerLayer.setVideoGravity(AVLayerVideoGravity.ResizeAspectFill);
             avPlayerLayer.setZPosition(50);
             avPlayer.setRate(1.0f);
             avPlayerLayer.isReadyForDisplay();
    
        }
    }
    ios launcher den de core tarafındaki main classa pasladım
            AVPlayerIOS avPlayerIOS = new AVPlayerIOS();
            mainGame.setAVPlayerHandler(avPlayerIOS);
    sonra core tarafındaki main class içinde handleri tanımladım.
    	public AVPlayerHandler avPlayerHandler;
    
    
    	public void setAVPlayerHandler(AVPlayerHandler avPlayerHandler) {
    		this.avPlayerHandler = avPlayerHandler;
    	}
    yine core tarafında create() içinde yada her hangi bir yerde videoyu oynatmayı denedim.
    avPlayerHandler.showVideo();
    ses var görüntü yok.
    yalnız hocam siz denedinizmi bilmiyorum ama android tarafındaki arkadaş ta aynı şekilde sıkıntı yaşıyor.
    libgdx den vaz geçme noktasına geldik. cocos2d yada unity'e de yönelmek istemiyoruz.
  • 02-02-2017, 17:44:06
    #6
    skype:fazilmetinkaya hocam eklerseniz burdan daha rahat konuşabiliriz.
  • 03-02-2017, 12:23:14
    #7
    hocam teşekkürler, sorunu şöyle çözdüm ios tarafında showvideo'nun içine aşağıdaki satırları ekleyince video ekranda görünür hale geldi
    uiView.getLayer().addSublayer(avPlayerLayer);
    iosApplication.getUIViewController().getView().addSubview(uiView);
    şimdi de şölye bir problem var NSURL ile http linki üzerinden ekrana video çağırabiliyorum ama lokaldeki bir video dosyasını açamıyorum