亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jmfutils.java

?? java + JMF 視頻 開發 ,簡單例子
?? JAVA
字號:
package jvideosystem.util;

import java.net.InetAddress;
import java.awt.*;

import javax.media.*;
import javax.media.protocol.*;
import javax.media.control.*;
import javax.media.bean.playerbean.*;
import javax.media.rtp.*;
import javax.media.rtp.rtcp.*;
import javax.media.format.*;

import com.sun.media.util.JMFI18N;
import com.sun.media.rtp.RTPSessionMgr;

import jmapps.ui.*;
import jmapps.util.StateHelper;


public class JMFUtils {

    public static MediaPlayer createMediaPlayer ( String nameUrl, Frame frame,
                                                  String audioEffect,
                                                  String videoEffect) {
        MediaLocator    mediaLocator = null;
        MediaPlayer     mediaPlayer = null;
        Player player = null;

        mediaLocator = new MediaLocator ( nameUrl );
        if ( mediaLocator == null  ||  nameUrl.equals("") ) {
            MessageDialog.createErrorDialog ( frame, JMFI18N.getResource("jmstudio.error.buildurlfor") + " " + nameUrl );
            return ( null );
        }
        if (audioEffect != null || videoEffect != null) {
            try {
                Processor proc = javax.media.Manager.createProcessor(mediaLocator);
                StateHelper sh = new StateHelper(proc);
                if (sh.configure()) {
                    TrackControl [] tc = proc.getTrackControls();
                    for (int i = 0; i < tc.length; i++) {
                        if (audioEffect != null && tc[i].isEnabled() &&
                            tc[i].getFormat() instanceof AudioFormat) {
                            assignEffect(tc[i], audioEffect);
                        } else if (videoEffect != null && tc[i].isEnabled() &&
                                   tc[i].getFormat() instanceof VideoFormat) {
                            assignEffect(tc[i], videoEffect);
                        }
                    }
                    proc.setContentDescriptor(null);
                    if (sh.realize()) {
                        player = proc;
                    }
                }
            } catch (Throwable t) {
                if (t instanceof ThreadDeath)
                    throw (ThreadDeath) t;
            }
        }

        mediaPlayer = new MediaPlayer ();
        if (player == null)
            mediaPlayer.setMediaLocator ( mediaLocator );
        else {
            mediaPlayer.setControlPanelVisible(false);
            mediaPlayer.setPlayer(player);
        }
        if ( mediaPlayer.getPlayer() == null ) {
            MessageDialog.createErrorDialog ( frame, JMFI18N.getResource("jmstudio.error.player.createfor") + " " + nameUrl );
            return ( null );
        }

        return ( mediaPlayer );
    }

    public static MediaPlayer createMediaPlayer ( DataSource dataSource, Frame frame ) {
        MediaPlayer     mediaPlayer = null;

        if ( dataSource == null ) {
            MessageDialog.createErrorDialog ( frame, JMFI18N.getResource("jmstudio.error.player.createfor") + " " + dataSource );
            return ( null );
        }

        mediaPlayer = new MediaPlayer();
        mediaPlayer.setDataSource( dataSource );
        if ( mediaPlayer.getPlayer() == null ) {
            MessageDialog.createErrorDialog ( frame, JMFI18N.getResource("jmstudio.error.player.createfor") + " " + dataSource );
            return ( null );
        }

        return ( mediaPlayer );
    }

    public static MediaPlayer createMediaPlayer ( Player player, Frame frame ) {
        MediaPlayer     mediaPlayer = null;

        if ( player == null ) {
            MessageDialog.createErrorDialog ( frame, JMFI18N.getResource("jmstudio.error.player.createfor") + " " + player );
            return ( null );
        }

        mediaPlayer = new MediaPlayer();
        mediaPlayer.setPlayer ( player );
        if ( mediaPlayer.getPlayer() == null ) {
            MessageDialog.createErrorDialog ( frame, JMFI18N.getResource("jmstudio.error.player.createfor") + " " + player );
            return ( null );
        }

        return ( mediaPlayer );
    }

    private static void assignEffect(TrackControl tc, String effect) {
        try {
            Class cl = Class.forName(effect);
            Effect ef = (Effect) cl.newInstance();
            Codec [] codecs = new Codec[] {ef};
            tc.setCodecChain(codecs);
        } catch (Throwable t) {
            if (t instanceof ThreadDeath)
                throw (ThreadDeath) t;
        }
    }

    // Creates capture DataSources for the requested device names and formats
    // Handles cases such as merging the two datasources, creating only
    // datasource if both device names are the same - that is, the device handles
    // both audio and video capture
    public static DataSource createCaptureDataSource ( String strAudioDevice,
                                                    Format audioFormat,
                                                    String strVideoDevice,
                                                    Format videoFormat ) {
            DataSource  dsOne = null;
        DataSource  dsTwo = null;
        DataSource  sources [];
        DataSource  merged = null;

        if (strAudioDevice == null  &&  strVideoDevice == null)
            return null;

        if ( strAudioDevice == null  ||  strVideoDevice == null ) {
            // Case 1 : Only one capture device

            // Figure out which device - audio or video - and create a datasource
            if (strAudioDevice != null)
                    dsOne = initializeCaptureDataSource ( null, strAudioDevice, audioFormat );
            else
                dsOne = initializeCaptureDataSource ( null, strVideoDevice, videoFormat );

        }
        else if ( !strAudioDevice.equals(strVideoDevice) ) {
            // Case 2 : Different capture devices

            // create the ds for audio
            dsOne = initializeCaptureDataSource ( null, strAudioDevice, audioFormat );
            if ( dsOne == null )
                    return null;

            // create the ds for video
            dsTwo = initializeCaptureDataSource ( null, strVideoDevice, videoFormat );
            if (dsTwo == null)
                    return null;

            // Merge the two
            sources = new DataSource [] { dsOne, dsTwo };
            try {
                    merged = javax.media.Manager.createMergingDataSource ( sources );
            }
            catch (javax.media.IncompatibleSourceException ise) {
            }
            dsOne = merged;
        } else {
            // Case 3 : Both device names are the same.

            dsOne = initializeCaptureDataSource ( null, strAudioDevice, audioFormat);
            if (dsOne == null)
                    return null;
            dsOne = initializeCaptureDataSource ( dsOne, strVideoDevice, videoFormat);
        }

        if ( dsOne == null )
            return null;

            try {
            dsOne.connect();
        }
        catch (java.io.IOException ioe) {
            return null;
        }
        return dsOne;
    }

    // Creates a DataSource for the given device name and sets the format on the
    // FormatControl exposed by the CaptureDevice (data source)
    //  Uses the specified data source ds or creates a new one if null
    public static DataSource initializeCaptureDataSource ( DataSource ds,
                                                        String deviceName,
                                                        Format format ) {
            MediaLocator        deviceURL;
        CaptureDeviceInfo   cdi;
        DataSource          dataSource = ds;
        FormatControl       formatControls [];
        Format              formats [];

        if ( ds == null ) {
            cdi = CaptureDeviceManager.getDevice ( deviceName );
            if (cdi == null)
                    return null;
            deviceURL = cdi.getLocator();

            try {
                    dataSource = javax.media.Manager.createDataSource(deviceURL);
                if (dataSource == null)
                    return null;
            } catch (NoDataSourceException ndse) {
                    return null;
            } catch (java.io.IOException ioe) {
                    return null;
            }
        }

        if ( format == null )
            return dataSource;

        if ( format != null  &&  !(dataSource instanceof CaptureDevice) )
            return null;

        formatControls = ((CaptureDevice) dataSource).getFormatControls();
        if ( formatControls == null  ||  formatControls.length == 0 )
            return null;
        for ( int i = 0; i < formatControls.length; i++ ) {
            if ( formatControls[i] == null )
                    continue;
            formats = formatControls[i].getSupportedFormats();
            if (formats == null)
                    return null;
//            System.err.println("Trying format " + format);
            if (matches(format, formats) != null) {
                    formatControls[i].setFormat(format);
//                System.err.println("Matching format = " + format);
                return dataSource;
            }
        }
        return null;
    }

    private static Format matches ( Format format, Format supported[] ) {
        if ( supported == null )
            return null;
        for ( int i = 0;  i < supported.length;  i++ ) {
            if ( supported[i].matches(format) )
                return supported[i];
        }
        return null;
    }

    public static RTPSessionMgr createSessionManager ( String strAddress, String strPort, String strTtl, ReceiveStreamListener listener )
    {
        int             nPort;
        int             nTtl;
        RTPSessionMgr   mngrSession;

        nPort = Integer.valueOf(strPort).intValue();
        nTtl = Integer.valueOf(strTtl).intValue();
        mngrSession = createSessionManager ( strAddress, nPort, nTtl, listener );
        return ( mngrSession );
    }

    public static RTPSessionMgr createSessionManager ( String strAddress, int nPort, int nTtl, ReceiveStreamListener listener )
    {
        RTPSessionMgr       mngrSession;
        String              nameUser = null;
        String              cname;
        SessionAddress      addrLocal;
        InetAddress         addrDest;
        SessionAddress      addrSession;
        SourceDescription   arrUserDescr [];

        mngrSession = (RTPSessionMgr) RTPManager.newInstance();

        if ( mngrSession == null )
            return null;

        if (listener != null)
            mngrSession.addReceiveStreamListener(listener);

        // ask RTPSM to generate the local participants CNAME
        cname = mngrSession.generateCNAME ();
        try {
            nameUser = System.getProperty("user.name");
        } catch (SecurityException e){
            nameUser = "jmf-user";
        }

        // create our local Session Address
        addrLocal = new SessionAddress();
        try {
            addrDest = InetAddress.getByName ( strAddress );
            addrSession = new SessionAddress ( addrDest, nPort, addrDest, nPort + 1 );

            SessionAddress localAddr, destAddr;

            if( addrDest.isMulticastAddress()) {
                    // local and remote address pairs are identical:
                localAddr= new SessionAddress( addrDest,
                                                   nPort,
                                                   nTtl);
                destAddr = new SessionAddress( addrDest,
                                                       nPort,
                                                         nTtl);

            } else {
                       localAddr= new SessionAddress( InetAddress.getLocalHost(),
                                                            nPort);
                destAddr = new SessionAddress( addrDest,
                                                          nPort);
            }

            mngrSession.initialize( localAddr);
            mngrSession.addTarget( destAddr);
        }
        catch ( Exception e ) {
//            e.printStackTrace ();
            return null;
        }

        return mngrSession;
    }


}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美午夜精品一区二区三区| 韩国一区二区三区| 欧美激情在线一区二区| 久久久不卡网国产精品二区| 欧美精品一区二区久久久| 欧美mv和日韩mv的网站| 久久亚区不卡日本| 国产日韩av一区| 国产精品久久久久一区二区三区共 | 在线视频观看一区| 欧美午夜不卡视频| 91精品国产麻豆| 精品伦理精品一区| 国产三级久久久| 亚洲欧洲av一区二区三区久久| 久久久久国产精品麻豆ai换脸| 在线不卡中文字幕| 久久婷婷国产综合国色天香| 国产午夜一区二区三区| 中文字幕制服丝袜一区二区三区 | 国产精品综合二区| av不卡在线播放| 欧美丝袜丝nylons| 精品国产99国产精品| 国产精品污网站| 亚洲国产一二三| 国产乱一区二区| 91亚洲大成网污www| 欧美一级欧美三级| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美日韩精品一二三区| 欧美欧美欧美欧美| 欧美极品美女视频| 亚洲第一综合色| 国产麻豆91精品| 欧洲一区二区三区在线| 久久丝袜美腿综合| 亚洲国产精品嫩草影院| 国产主播一区二区三区| 欧美伊人久久久久久久久影院| 日韩欧美第一区| 亚洲毛片av在线| 国产综合久久久久久久久久久久 | 首页国产欧美日韩丝袜| 粉嫩在线一区二区三区视频| 日韩中文欧美在线| 亚洲国产精品av| 亚洲妇女屁股眼交7| 国内精品在线播放| 欧美日韩在线三级| 中文字幕日本不卡| 国产九色精品成人porny| 欧美高清hd18日本| 亚洲影视资源网| 成人av电影免费在线播放| 日韩欧美亚洲另类制服综合在线 | www.一区二区| 精品久久久久久亚洲综合网| 亚洲一区二区三区在线播放| 不卡av在线网| 国产精品免费丝袜| 粉嫩aⅴ一区二区三区四区| 欧美α欧美αv大片| 蜜臀久久99精品久久久久宅男 | 亚洲欧洲av在线| 国产成人av自拍| 精品国产免费一区二区三区香蕉| 首页欧美精品中文字幕| 欧美视频精品在线| 亚洲一级片在线观看| 99精品国产99久久久久久白柏| 国产农村妇女毛片精品久久麻豆| 国产综合色精品一区二区三区| 欧美大片在线观看一区二区| 首页亚洲欧美制服丝腿| 欧美日韩免费电影| 日韩成人av影视| 8x福利精品第一导航| 午夜日韩在线电影| 日韩视频一区二区三区在线播放| 日韩不卡一二三区| 欧美不卡激情三级在线观看| 狠狠色丁香婷婷综合| 国产日本欧洲亚洲| 国产麻豆精品久久一二三| 国产亚洲一区二区三区| 福利91精品一区二区三区| 国产精品区一区二区三| 色综合天天做天天爱| 一区二区三区四区蜜桃 | 国产精品99久| 国产精品久久久久影院亚瑟| 色婷婷国产精品| 亚洲.国产.中文慕字在线| 91精品国产麻豆| 高清不卡一区二区在线| 亚洲精品视频免费看| 91精品国产色综合久久久蜜香臀| 精品在线免费视频| 亚洲视频在线观看一区| 91精品国产综合久久久久| 韩国精品一区二区| 成人免费小视频| 91精品国产综合久久精品麻豆| 国产精品88av| 亚洲一区二区在线播放相泽 | 国产成人免费9x9x人网站视频| 国产女人18毛片水真多成人如厕 | 日韩欧美一区在线观看| 国产成人午夜片在线观看高清观看| 国产精品成人网| 欧美一区二区三区四区高清| 丁香婷婷综合激情五月色| 亚洲一区二区欧美日韩| 久久人人爽爽爽人久久久| 色综合天天狠狠| 国产美女一区二区三区| 亚洲高清免费视频| 亚洲精品一区在线观看| 欧美视频一区二| av在线一区二区| 九色综合狠狠综合久久| 亚洲一区二区三区中文字幕| 国产色爱av资源综合区| 911国产精品| 91国模大尺度私拍在线视频| 国产成人综合在线播放| 久久丁香综合五月国产三级网站| 日韩美女精品在线| 国产欧美中文在线| 日韩精品一区二区三区老鸭窝| 色成人在线视频| av色综合久久天堂av综合| 国产一区二区三区蝌蚪| 麻豆久久久久久久| 日韩高清中文字幕一区| 亚洲综合小说图片| 亚洲视频一二三区| 国产精品久线在线观看| 26uuu精品一区二区在线观看| 欧美精品免费视频| 欧美性淫爽ww久久久久无| 色综合久久久网| 97精品视频在线观看自产线路二| 国产成人无遮挡在线视频| 国产麻豆视频一区二区| 国产精品一区在线观看乱码| 精品制服美女久久| 国产一区二区三区在线观看精品| 蜜臀av国产精品久久久久 | 久久久噜噜噜久噜久久综合| 日韩一级大片在线| 日韩免费观看高清完整版| 欧美肥大bbwbbw高潮| 欧美性生活久久| 欧美日韩黄色一区二区| 欧美日韩黄色一区二区| 欧美日韩亚洲丝袜制服| 欧美男人的天堂一二区| 日韩欧美一区二区三区在线| 日韩欧美久久一区| 久久日一线二线三线suv| 国产欧美1区2区3区| 亚洲素人一区二区| 婷婷中文字幕一区三区| 青青草97国产精品免费观看| 激情国产一区二区| 在线视频你懂得一区| 日韩黄色免费电影| 亚洲在线成人精品| 一区二区三区四区精品在线视频| 亚洲欧美一区二区三区国产精品 | 伊人夜夜躁av伊人久久| 一区二区免费在线| 人人精品人人爱| 极品少妇xxxx精品少妇偷拍| 丰满白嫩尤物一区二区| 91免费国产在线观看| 欧美久久一区二区| 久久久一区二区| 亚洲精品免费播放| 麻豆精品一区二区av白丝在线| 国产中文一区二区三区| 91在线视频播放| 91精品国产综合久久久久| 日本一区二区三区电影| 亚洲一区二区三区中文字幕在线| 轻轻草成人在线| 99久久婷婷国产综合精品电影| 欧美日韩国产免费一区二区| 久久久久亚洲蜜桃| 亚洲午夜私人影院| 国内精品不卡在线| 欧美亚一区二区| 国产精品久久久久四虎| 欧美aaaaa成人免费观看视频| 不卡电影一区二区三区| 欧美成人欧美edvon| 亚洲综合色网站| 成人黄色小视频|