Question

Je veux lancer un programme appelé VLC dans java et le contrôler pendant l'exécution, par exemple, si l'utilisateur a cliqué sur ?? ou ?? bouton, je fais une action appropriée spécifique.

Je lance VLC par ce code:

try
{
    Runtime rt = Runtime.getRuntime();
    Process p = rt.exec(VLCProgramAddFile + " udp://@:" + listeningPort);

    OutputStream out = p.getOutputStream();
    InputStream in = p.getInputStream();

    p.waitFor();
    System.out.println("End of VLC");
}
catch (Exception e)
{
    System.out.println("error in running VLC");
}

J'ai entendu parler des liaisons Java, mais je ne sais pas comment ça marche pour ce travail.

Était-ce utile?

La solution

Vous cherchez probablement VLCJ, c'est un wrapper java pour VLC. Il vous permet d'intégrer un lecteur multimédia VLC dans une application java, et ainsi ajouter tous vos contrôles personnels.

(Notez que la pour les applications utilisateur cela est bien beau, mais la bibliothèque VLCJ n'est pas parfait, vous pouvez ont plusieurs problèmes surgissent.)

EDIT: Pour mon projet, je l'ai vu des fuites de mémoire et des problèmes avec des programmes en cours d'exécution à long (plusieurs instances pendant plusieurs heures). En particulier, les instances multiples ne fonctionne pas en combinaison avec quelques options de compilation (qui sont par défaut).

Autres conseils

VLCj est ce que vous êtes après oui - il est essentiellement un wrapper Java directement autour libvlc. Si vous l'utilisez dans le processus (surtout si vous utilisez plusieurs joueurs en cours), vous verrez parfois se bloque VM - ce n'est pas la faute de VLCJ plutôt libvlc et les bibliothèques natives qu'il utilise ont sous quelques bugs de filetage subtils qui expose ces problèmes <. / p>

Vous pouvez le faire fonctionner de manière fiable avec plusieurs instances, mais pour ce faire, vous devez l'utiliser en dehors du processus. Voir pour mes premières tentatives de le faire. Il est un peu de travail à mettre en place, mais une fois aller, les choses semblent fonctionner très bien.

En fonction de ce que vous voulez accomplir, finalement, peut-être le GStreamer Java liaisons sont en valeur un regard qui vous donnera un contrôle à grain très fin de la lecture. Et vous pouvez faire des conversions et tout. Ils ont aussi une application par exemple de lecteur vidéo pour vous aider à minimalistic démarrer avec.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top