इसलिए मैंने हाल ही में जावा जावा के साथ काम करना शुरू कर दिया है ताकि मेरे जावा कार्यक्रमों में वीडियो और ऑडियो डालने और सम्मिलित किया जा सके। ऑडियो ने ठीक काम किया है, लेकिन हर बार जब मैं वीडियो फ़ाइल को चलाने और चलाने की कोशिश करता हूं, तो यह एक MEDIA_UNSUPPORTED अपवाद देता है। मैंने चारों ओर पढ़ा है और देखा है कि वीडियो फ़ाइल एमपी 4 (जो यह है) होने की आवश्यकता है, इसलिए मैंने इसे एक अलग प्रकार में परिवर्तित करने की कोशिश की और फिर इसे एमपी 4 (एच .264एएसी) में दो अलग-अलग कनवर्टर्स के साथ फिर से परिवर्तित कर दिया। कुछ नहीं बदलता है।एमपी 4 जावाएफएक्स में असमर्थित?
यहाँ कोड के साथ मैं काम कर रहा हूँ है: लाइन जहां "मीडिया" वस्तु आरंभ नहीं हो जाता (निर्माता की शुरुआत) पर
import java.net.URL;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javafx.application.Platform;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.embed.swing.JFXPanel;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.scene.media.MediaView;
import javafx.util.Duration;
public class CallVideo extends JFrame{
public static final String VID_URL = "file:/C:/Users/Public/Videos/Videos/testCon.mp4"; //http://static.clipcanvas.com/sample/clipcanvas_14348_H264_320x180.mp4
private JFXPanel panel;
public CallVideo(String url)
{
panel = new JFXPanel();
Platform.runLater(new Runnable()
{
public void run()
{
final Media clip = new Media(VID_URL);
final MediaPlayer player = new MediaPlayer(clip);
final MediaView viewer = new MediaView(player);
viewer.setFitHeight(200);
viewer.setFitWidth(200);
final Button button = new Button("Bing Zzzzt!");
button.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event)
{
viewer.getMediaPlayer().seek(Duration.ZERO);
viewer.getMediaPlayer().play();
}
});
setMediaEventHandlers(viewer);
VBox vid = new VBox();
vid.getChildren().addAll(viewer, button);
Scene aScene = new Scene(vid, 200, 200);
panel.setScene(aScene);
}
});
this.add(panel);
this.setSize(500, 500);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
}
private void setMediaEventHandlers(final MediaView view) {
final MediaPlayer player = view.getMediaPlayer();
System.out.println("Initial: " + player.getStatus());
player.statusProperty().addListener(new ChangeListener<MediaPlayer.Status>() {
@Override
public void changed(ObservableValue<? extends MediaPlayer.Status> observable, MediaPlayer.Status oldStatus, MediaPlayer.Status curStatus) {
System.out.println("Current: " + curStatus);
}
});
if (player.getError() != null) {
System.out.println("Initial Error: " + player.getError());
}
player.setOnError(new Runnable() {
@Override public void run() {
System.out.println("Current Error: " + player.getError());
}
});
}
public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
new CallVideo(VID_URL);
}
});
}
}
त्रुटि तब होती है। मुझे यह देखने के लिए कुल नुकसान हुआ है कि समस्या क्या है। मैं ऑडियो खेल लेकिन वीडियो प्रदर्शित नहीं के बारे में सवाल देखा है, लेकिन यह भी मेरे लिए काम नहीं करता है कि ...
मामले किसी में यह की जरूरत है:
ग्रहण
JDK 7
JavaFX 2.0
विंडोज 7 प्रो
संपादित करें:
सबसे पहले, मैंने देखा कि मैं वास्तव में जावाएफएक्स 2.0 का उपयोग कर रहा हूं ... क्या यह समस्या हो सकती है?
मैं जवाब में प्रदान की दोनों संस्करणों परीक्षण किया है, और दोनों (statusListener द्वारा कहा जाता है) यह त्रुटि लौटाते जब कि इसका जवाब द्वारा URL का उपयोग कर:
Current Error: MediaException: MEDIA_UNSUPPORTED : com.sun.media.jfxmedia.MediaException: "Error enter code herelocator unsupported media format" : com.sun.media.jfxmedia.MediaException: "Error locator unsupported media format"
अपने ही फ़ाइल का उपयोग कर, कार्यक्रम मीडिया कन्स्ट्रक्टर को कॉल करने के तुरंत बाद यह त्रुटि लौटाती है:
Exception in thread "AWT-EventQueue-0" MediaException: MEDIA_UNSUPPORTED : Unrecognized file signature!
at javafx.scene.media.Media.<init>(Media.java:382)
at CallVideo.<init>(CallVideo.java:27)
at CallVideo$5.run(CallVideo.java:90)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
मैंने ऊपर दिए गए कोड को अपडेट किया है।
सोल्ड! कारण वास्तव में मैं नौकरी के लिए एक अनुचित जावाएफएक्स (और संभवतः जेडीके) का उपयोग कर रहा था। मैं वास्तव में उस सामान के नियंत्रण में नहीं हूं क्योंकि ये स्कूल कंप्यूटर हैं, लेकिन इससे मुझे कुछ अच्छा लगा ... मदद के लिए धन्यवाद! मैंने इसे अपने अंतिम कोड के साथ अपडेट किया।
असल में, मैंने पहले आपके द्वारा दिए गए उदाहरण को अन्य प्रश्न के लिए दिया था और, इस कोड की तरह, यह अभी भी पहले की तरह ही त्रुटि देता है, और न ही खेलता है। मैंने नोटिस किया कि, हालांकि, अपनी खुद की फाइल का उपयोग करते समय, मुझे एक लाल त्रुटि मिलती है, जबकि आप जिस लिंक को आपूर्ति कर रहे हैं वह स्थिति के माध्यम से एक त्रुटि देता हैप्रॉपर्टी श्रोता ... – Chaos
उस नमूने के लिए आपको बहुत बहुत धन्यवाद! – Chris
मैं javaFx 2.2 का उपयोग कर रहा हूं और मुझे अभी भी यह त्रुटि मिलती है। क्या कोई अन्य मुद्दा है जिसे इस पोस्ट में उल्लिखित नहीं किया गया है? – cp101020304