Witam,
Tworzę teraz program w javie przy uzyciu jmf, jest to pakiet instalowany dodatkowo, więc możliwe że nie każdy sobie nim zaprzątał głowę. Chcę żeby mój program odtwarzał pliki video i samo odtwarzanie już zrobiłem, ale mam następujące problemy:

  1. Chcę aby przy zmianie wielkości okna głównego były zachowane proporcje obrazu odtwarzanego.
    Mój program wyglada nastepująco: W oknie glównym mam stworzone Menu, a pod menu jest JPanel w którym odtwarzam pliki video. Mam w menu dodanego "Menu Item CheckBox-a" i zależnie od jego stanu maja być zachowane proporcje lub nie. Zrobiłem dla tego słuchacza
private void RatioItemStateChanged(java.awt.event.ItemEvent evt) {
        boolean stan = Ratio.getState();
        mojPanel.Ratio(stan);
    }

wywołuje on funkcję z panelu, funkcja wygląda nasepująco:

public void Ratio(boolean jaki)
    {
        if(video!=null)
        {
        media.setFixedAspectRatio(jaki);
        System.out.println("" +media.isFixedAspectRatio()); //tylko do sprawdzenia - zależnie od stanu jest true/false
        }
    }

Jednak juz gdy odpalam program i otwieram film to przy robieniu jakichkolwiek operacji na rozmiarze okna proporcje obrazu (aspect ratio) nie zostają zachowane, obraz odtwarzanego plku rozciąga się tak jak rozciąga się okno. I teraz nie wiem jak to zrobić żeby zachować proporcje, czy musze pisać własną funkcję skalującą czy coś robię źle?
moje "media" które widać w kodzie to jest:

private MediaPlayer media;
// i dalej:
Manager.setHint(Manager.PLUGIN_PLAYER, new Boolean (true));
        Player mediaPlayer = Manager.createRealizedPlayer(mojeURL);

        media = new MediaPlayer();
        media.setPlayer(mediaPlayer);

Nie wiem co zrobić aby utrzymać ratio przy resize okna głównego :/

  1. Chce zrobić operację na samym obrazie, tj. dla przykładu, odtwarzam plik o rozmiarze 640x272, to jest około 2,35:1 i chcę ten obraz przyciąć do formatu 16:9, czyli powinny zostać przycięte boki tak żeby rozmiar obrazu wynosił 484x272, symetrycznie przycięcie powinno wynosić po 78 pikseli z prawej i z lewej strony. I teraz pytanie jak to zrobić? W jaki sposób operować na samym obrazie nie zmieniając rozmiarów samego panelu. Czyli nawiązując do poprzedniego punktu o ratio niech rozmiar okna video po resize wynosi 640x360, w takim oknie film w formacie 21 o rozmiarze 640x272 powinien wyglądać tak że mieściłby się na długość idealnie, a na wysokość to z góry i z dołu byłyby dwa czarne pasy o odpowiedniej wielkości, natomiast po przycięciu boków do formatu 16:9 obraz o rozmiarach 484x272 pasowałby idealnie na długość i na wysokość okna. To wiąże się z utrzymaniem ratio, ale jak dokonać samego przycięcia po bokach. Zakładam, że nie będzie to wycięcie boków tylko wycięcie kwadrata o odpowiednich wymiarach i punkcie poczatkowym, tylko nie znalazłem takiej funkcji albo nie wiem jak to zrobić. Prosiłbym o pomoc, czy coś z getBounds() mam robić? Sam panel video składa sie z video i kontrolek, dlatego mówiłem o rozmiarze video a nie rozmiarze panelu całego, są one deklarowane tak:
Component video = media.getVisualComponent();
        Component kontrolki = media.getControlPanelComponent();
  1. Problem z odtwarzaniem audio. To jest największy mankament, ponieważ nie wiem w jaki sposób zrobić żeby odtworzyć audio w formacie mpeglayer3 z pliku video. Może coś z pluginami, może coś z AudioFormat, mam z tym problem wielki :/ Jedyne jakie działały z tych które sprawdzałem to dźwięk w formacie PCM i mpegaudio. Jednak w tym drugim przypadku dźwięk rozjeżdżał się z obrazem, natomiast tego problemu nie było gdy ten sam plik odtwarzałem poprzez dołaczony od razu do JMF przykładowy odtwarzacz JMStudio. Podobnie jest z niektórymi formatami video, program odtwarza pliki video o rozszerzeniu mpg, mpeg, avi i chyba mov, ale tego ostatniego nie sprawdzałem. Ale i z tym nie jest tak łatwo, bo miałem plik o rozszerzeniu avi, ale video kodowane DVSD i program wysypywał się, nie odtwarzał takiego pliku w ogóle. Jeśli ktoś coś już majstrował z JMF to bardzo proszę o pomoc, to jest moj pierwszy kontakt z JMF więc jestem w tym troszkę zielonkawy :/

Dziękuję za pomoc i szczere chęci pomocy, mam nadzieję że mi to pomoże albo naprowadzi na właściwą drogę. :)