Erro ao inserir video no fx

9 respostas Resolvido
java
D

Galera to tentando inserir um video no java mas ta dando erro alguem me ajuda?

package application;

import javafx.fxml.FXML;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;

public class Controller {
    
    @FXML
    private MediaView MV;
    
    public Controller() {}
    
    @FXML
    public void initialize() {
        String caminhoV="C:/Users/lendoval/eclipse-workspace2/JavaFX_1/src/res/v1.mp4";
        Media media = new Media(caminhoV);
        MediaPlayer mp = new MediaPlayer(media);
        MV = new MediaView(mp);
        mp.play();
    }
}
package application;
	
import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Scene;
import javafx.scene.layout.AnchorPane;
import javafx.fxml.FXMLLoader;

public class Main extends Application {
    
    @Override
    public void start(Stage primaryStage) {
        try {
            AnchorPane root = (AnchorPane)FXMLLoader.load(getClass().getResource("Sample.fxml"));
            Scene scene = new Scene(root,400,400);
            scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
            primaryStage.setScene(scene);
            primaryStage.show();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) {
        launch(args);
    }
}
<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.media.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>

<AnchorPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.Controller">
    <children>
        <MediaView fx:id="MV" fitHeight="200.0" fitWidth="200.0" layoutX="200.0" layoutY="100.0" />
    </children>
</AnchorPane>
ERRO

javafx.fxml.LoadException:
/C:/Users/lendoval/eclipse-workspace2/JavaFX_1/bin/application/Sample.fxml
    at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2714)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2684)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2555)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3368)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3324)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3292)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3264)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3240)
    at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3233)
    at JavaFX_1/application.Main.start(Main.java:14)
    at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)
    at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)
    at java.base/java.lang.Thread.run(Thread.java:833)

Caused by: java.lang.reflect.InvocationTargetException
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:119)
    at java.base/java.lang.reflect.Method.invoke(Method.java:577)
    at com.sun.javafx.reflect.Trampoline.invoke(MethodUtil.java:77)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
    at java.base/java.lang.reflect.Method.invoke(Method.java:577)
    at javafx.base/com.sun.javafx.reflect.MethodUtil.invoke(MethodUtil.java:275)
    at javafx.fxml/com.sun.javafx.fxml.MethodHelper.invoke(MethodHelper.java:84)
    at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2680)
... 17 more

Caused by: java.lang.UnsupportedOperationException: Unsupported protocol "c"
    at javafx.media/com.sun.media.jfxmedia.locator.Locator.<init>(Locator.java:241)
    at javafx.media/javafx.scene.media.Media.<init>(Media.java:393)
    at JavaFX_1/application.Controller.initialize(Controller.java:27)
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
... 24 more

9 Respostas

L

Ao passar o caminho do vídeo tente colocar file:// no início:

String caminhoV = "file://c:/Users/lendoval/eclipse-workspace2/JavaFX_1/src/res/v1.mp4";
J

Se estiver usando o NetBeans, dá um “Clean and Build”.
Ele não encontrou o arquivo FXML, e certifique que esse arquivo esteja no lugar correto.

D
Tentei o sequine , mas nao funcionou, o video esta numa pasta res junto com o programa configurada com biuld path, uso o eclipse.

String caminhoV = file://C:/Users/pc/eclipse-workspace/JavaV_FX/res/v1.mp4”;

Media media = new Media(caminhoV);

MediaPlayer mp = new MediaPlayer(media);

mv = new MediaView(mp);
mp.play();

erro…
javafx.fxml.LoadException:

/C:/Users/pc/eclipse-workspace/JavaV_FX/bin/application/Sample.fxml:9

at javafx.fxml/javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2714)

at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:944)

at javafx.fxml/javafx.fxml.FXMLLoader$InstanceDeclarationElement.processAttribute(FXMLLoader.java:981)

at javafx.fxml/javafx.fxml.FXMLLoader$Element.processStartElement(FXMLLoader.java:230)

at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:755)

at javafx.fxml/javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2845)

at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2641)

at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2555)

at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3368)

at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3324)

at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3292)

at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3264)

at javafx.fxml/javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:3240)

at javafx.fxml/javafx.fxml.FXMLLoader.load(FXMLLoader.java:3233)

at JavaV_FX/application.Main.start(Main.java:14)

at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:847)

at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:484)

at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:457)

at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)

at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:456)

at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)

at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)

at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:184)

at java.base/java.lang.Thread.run(Thread.java:833)

Caused by: java.lang.reflect.InvocationTargetException

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)

at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)

at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)

at javafx.fxml/javafx.fxml.FXMLLoader$ValueElement.processAttribute(FXMLLoader.java:939)

… 22 more

Caused by: MediaException: MEDIA_INACCESSIBLE : C

at javafx.media/javafx.scene.media.Media.(Media.java:409)

at JavaV_FX/application.SampleController.(SampleController.java:18)

… 28 more

J

Como dito antes ele não esta encontrando o FXML

D

ate ae entendi mas não entendi o por q, o arquivo esta no local coreto, no formato correto ja tentei nomenclatura do caminho com “/”, “//”, “",”\", com “file:” , tentei com vídeos da internet, de nuvem, so o nome do vídeo e o formato ja q esta no mesmo diretório do programa, pensei q podia se o pc fraco tentei em outro, tentei outras versões a mais atualizada e 3 anteriores mas o erro e sempre o mesmo, então pressuponho q tenha algo errado no meu código, se eu inicializar a janela sem o algoritmo do vídeo a janela abre normalmente.

J

Ok, se desejar uma ajuda real, me passa um codigo resumido rodando que apresenta esse erro.
Seu projeto esta feito usando qual IDE?

D

eu botei um zip no google derive o arquivo simplificado pode olhar? eu uso o eclipse 2023

J
Solucao aceita

Dentro dele comentei os erros e rodou
Caso não entenda alguma coisa estou a disposição

Bons Codigos

D

aaaaa cara funcionouuuuu poxa valeuu mesmo olhei em uns 10 livros, vídeos no youtub e ate no gpt perguntei e tudo dizia a mesma coisa e não pegava, kkkkk vibrei aqui como se o Brasil tivesse feito goll na copa quando escutei o áudio saindo e logo em seguida a janela do vídeo abre. então é isso preciso seta a classe principal nunca q ia descobrir só, e o objeto do media q eu criei outro sem precisar.

Criado 21 de junho de 2023
Ultima resposta 27 de jun. de 2023
Respostas 9
Participantes 3