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.
Libgdx android ve IOS video oynatma problemi
6
●568
- 01-02-2017, 21:43:55hocam 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, 16:26:40hocam 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:51yok @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:06skype:fazilmetinkaya hocam eklerseniz burdan daha rahat konuşabiliriz.
- 03-02-2017, 12:23:14hocam 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