import com.sun.media.jfxmedia.Media; import com.sun.media.jfxmedia.MediaManager; import com.sun.media.jfxmedia.MediaPlayer; import com.sun.media.jfxmedia.locator.Locator; import com.sun.media.jfxmedia.track.AudioTrack; import com.sun.media.jfxmedia.track.Track; import com.sun.media.jfxmedia.track.VideoTrack; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.util.List; import javafx.application.Application; import javafx.stage.Stage; /** * * @author gtee */ public class SampleMediaCrashWindows extends Application { private static final String MEDIA_URL = "http://reavers.us.oracle.com/MediaJUnitTestFiles/hls/stream_ts/stream.m3u8"; private final String audioEncoding = null; private final String videoEncoding = null; public MediaPlayer createPlayer(String source) { try { URI uri = new URI(source); Locator locator = new Locator(uri); locator.init(); MediaPlayer player = MediaManager.getPlayer(locator); return player; } catch (URISyntaxException | IOException ex) { ex.printStackTrace(); } return null; } @Override public void start(Stage primaryStage) { Thread runner = new Thread(new Runnable() { @Override public void run() { MediaPlayer player = createPlayer(MEDIA_URL); player.play(); Media media = player.getMedia(); List tracks = media.getTracks(); Track track; if (tracks == null) { System.out.println("Media.getTracks() == null"); } Track.Encoding encoding = Track.Encoding.NONE; for (Track t : tracks) { track = null; if (t instanceof AudioTrack) { track = t; encoding = Track.Encoding.valueOf(audioEncoding); } if (t instanceof VideoTrack) { track = t; encoding = Track.Encoding.valueOf(videoEncoding); } if (track == null) { System.out.println("Could not find track"); } Track.Encoding result = track.getEncodingType(); System.out.println("encoding: " + encoding); System.out.println("result: " + result); if (!encoding.toString().equals(result.toString())) { System.out.println("Incorrect encoding"); } } System.out.println("PASS"); } }); runner.start(); } /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } }