Android Developers:控制照相机

浏览:924 ℃
字体:
发布时间:2013-12-11 11:03:05
来源:

在这节课程中,我们讨论如何使用框架的API来直接控制照相机。

直接控制一个设备的照相机需要比从已经存在的照相机应用程序中请求图片或者音频需要更多的代码。然而,如果你想构建一个指定的照相机应用程序,或者在你的应用程序中完全集成,这节课程向你展示如何实现。

打开照相机对象
————————————————————————————————————————————————————————————

获取Camera对象的一个实例,是直接控制相机过程的第一步。正如Android自己的相机应用程序,访问照相机要求的方式是,在onCreate()方法中启动一个单独的线程中打开Camera。这种方式是一个好的注意,因为它需要一段时间,并且在UI线程中陷入困境。 在一个更基础的实现中,打开照相机可以被延期到onResume()方法,促进代码重用并保持简单的流控制。

如果照相机已经被其它的应用程序使用,调用Camera.open()方法抛出一个异常,搜易我们在一个try块中包裹它。

private boolean safeCameraOpen(int id) {    boolean qOpened = false;      try {        releaseCameraAndPreview();        mCamera = Camera.open(id);        qOpened = (mCamera != null);    } catch (Exception e) {        Log.e(getString(R.string.app_name), "failed to open Camera");        e.printStackTrace();    }     return qOpened;     }  private void releaseCameraAndPreview() {    mPreview.setCamera(null);    if (mCamera != null) {        mCamera.release();        mCamera = null;    } } 
从API Level 9开始,照相机框架支持多个照相机。如果你使用遗留额API并不使用参数调用onpen()方法,你第一个后方照相机。

创建照相机预览

————————————————————————————————————————————————————————————

你的用户在点击快门之前查看它们的题材的一个预览,是照相的通常要求。为了实现它,你能使用一个SurfaceView来绘制照相机传感器抓取的预览。

预览类

为了开始显示一个预览,你需要预览类。预览要求一个android.view.SurfaceHolder.Callbak接口的实现,它被用户从照相机硬件往你的应用程序传递图片数据。

class Preview extends ViewGroup implements SurfaceHolder.Callback {     SurfaceView mSurfaceView;    SurfaceHolder mHolder;     Preview(Context context) {        super(context);         mSurfaceView = new SurfaceView(context);        addView(mSurfaceView);         // Install a SurfaceHolder.Callback so we get notified when the        // underlying surface is created and destroyed.        mHolder = mSurfaceView.getHolder();        mHolder.addCallback(this);        mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);    } ... } 
在当前的图片预览被启动之前,预览类必须被传递给Camera对象,如下面的章节显示。

设置和启动预览

一个照相机实例和它的相关的预览必须在一个指定的顺序被创建,照相机对象在先。在下面的代码块,初始化照相机的过程被封装,以至于Camera.startPreview()方法在setCamera()方法中被调用,无论用户什么时候改变相机。预览也必须在预览类的surfaceChanged()回调方法中被重启。

public void setCamera(Camera camera) {    if (mCamera == camera) { return; }        stopPreviewAndFreeCamera();        mCamera = camera;        if (mCamera != null) {        List localSizes = mCamera.getParameters().getSupportedPreviewSizes();        mSupportedPreviewSizes = localSizes;        requestLayout();              try {            mCamera.setPreviewDisplay(mHolder);        } catch (IOException e) {            e.printStackTrace();        }              /*          Important: Call startPreview() to start updating the preview surface. Preview must           be started before you can take a picture.          */        mCamera.startPreview();    } } 
修改相机设置

————————————————————————————————————————————————————————————

相机设置改变了相机拍照的方式,从缩放级别到曝光补偿。这个例子仅仅改变了预览大小;查看照相机应用程序的源代码学习更多。

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {    // Now that the size is known, set up the camera parameters and begin    // the preview.    Camera.Parameters parameters = mCamera.getParameters();    parameters.setPreviewSize(mPreviewSize.width, mPreviewSize.height);    requestLayout();    mCamera.setParameters(parameters);     /*      Important: Call startPreview() to start updating the preview surface. Preview must be      started before you can take a picture.    */    mCamera.startPreview(); } 
设置预览的方向

————————————————————————————————————————————————————————————

许多照相机应用程序锁定了到横屏模式显示,因为它是照相机传感器的自然方向。这个设置不阻止你拍一张竖向模式的照片,因为设备的方向是在EXIF头中被记录。setCameraDisplayOrientaion()方法让你改变预览的显示,而不影响记录的图片。然而,在Android早期API level 14的时候,你必须在改变方向之前停止你的预览,然后重启它。

拍照

————————————————————————————————————————————————————————————

一旦预览启动,使用Camera.takePicture()方法来拍一张照片。你能创建Camera.PictureCallback和Camera.ShutterCallbak对象,并将它们传递到Camera.tackPicture()方法。

如果你想持续不断的抓取照片,你可以创建一个Camera.PreviewCallback,它实现了onPreviewFrame()方法。在两者之间,你能捕获仅仅被选中的预览框架,或者在调用tackPicture()方法中设置一个延迟动作。

重启预览

————————————————————————————————————————————————————————————

在拍玩一张照片之后,你必须在用户拍其它照片的之前重启预览。在这个例子中,通过覆盖快门按钮执行重启。

@Override public void onClick(View v) {    switch(mPreviewState) {    case K_STATE_FROZEN:        mCamera.startPreview();        mPreviewState = K_STATE_PREVIEW;        break;     default:        mCamera.takePicture( null, rawCallback, null);        mPreviewState = K_STATE_BUSY;    } // switch    shutterBtnConfig(); } 
停止预览和释放照相机

————————————————————————————————————————————————————————————

一旦你的应用程序正在使用照相机,是时候清理。特别,你必须释放Camera对象,或者你可能会是其它应用程序崩溃,包括你自己的应用程序的新的实例。

当你应该停止预览和释放照相机的时候?那么,你的预览界面被销毁是一个好的暗示,是停止预览和释放照相机的时候,正如在Preview类中的方法所示。

public void surfaceDestroyed(SurfaceHolder holder) {    // Surface will be destroyed when we return, so stop the preview.    if (mCamera != null) {        /*          Call stopPreview() to stop updating the preview surface.        */        mCamera.stopPreview();    } }  /**  * When this function returns, mCamera will be null.  */ private void stopPreviewAndFreeCamera() {     if (mCamera != null) {        /*          Call stopPreview() to stop updating the preview surface.        */        mCamera.stopPreview();            /*          Important: Call release() to release the camera for use by other applications.           Applications should release the camera immediately in onPause() (and re-open() it in          onResume()).        */        mCamera.release();            mCamera = null;    } } 

闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻锝夊箣閿濆憛鎾绘煕閵堝懎顏柡灞剧洴椤㈡洟鏁愰崱娆欑喘闂備線鈧偛鑻崢鎼佹煟閹虹偛顩柟骞垮灩閳规垹鈧綆浜為ˇ鏉款渻閵堝棙灏靛┑顖e幖鍗遍柛妤冨亹閺€浠嬫煟閹邦剛鎽犵紓宥嗗灴閺屾稑顫濋澶婂壈鐎光偓閿濆懐浠㈤柍璇查叄楠炲鈹戦幇顓ф%闂傚倷鑳堕~瀣礋閸偆鏆﹂梻浣瑰▕閺€閬嶅垂閸洖桅闁告洦鍨扮粻鎶芥煕閳╁啨浠﹀瑙勬礈缁辨捇宕掑▎鎴М濡炪倧瀵岄崹鍫曘€佸棰濇晣闁绘ɑ褰冮悘濠冪節閻㈤潧校闁煎綊绠栧畷姗€鍩€椤掆偓椤啴濡堕崱妯烘殫闂佸摜濮甸幑鍥х暦閵忋倕绠瑰ù锝呭帨閹锋椽姊虹涵鍛汗闁稿鐩畷婵單旈崨顔惧幐闂佸憡渚楅崰姘垛€栨總鍛婄厓妞ゅ繐鎳忕亸锔芥叏婵犲嫮甯涢柟宄版嚇瀹曘劑妫冨☉姘毙ㄥ銈冨灪閻楃姴鐣烽崡鐐╂婵☆垳鈷堥崬鍫曟⒒娴e摜绉烘俊顐ユ硶缁牊绗熼埀顒勫箖閿熺姴鐏抽柟棰佽兌閸炵敻鏌i悩鐑橆仩閻忓繈鍔戝畷婵嬫偄閸忚偐鍘搁梺绯曟閸橀箖鎮鹃悽鍛婄厸閻忕偛澧藉ú鏉戔攽閿涘嫬鍘村┑顔瑰亾闂佹枼鏅涢崯鎷屻亹閸ヮ剚鈷掑ù锝堟鐢稓绱掔€n亞绠荤€规洘娲栭悾鐑藉炊椤垶缍楅梻浣筋潐瀹曟﹢顢氳婢规洟宕楅懖鈺冾啎闂佺硶鍓濋敋濞e浂鍨堕弻娑㈡倷閼碱剛楔濠殿喖锕ュ浠嬪蓟閸涘瓨鍊烽柤鑹版硾椤忣厽绻濋埛鈧仦鑺ョ彎闂佸搫鏈惄顖炲箖閵忋倖鐓ラ悗锝庝簷濞n喗淇婇悙顏勨偓鎴﹀垂閸濆嫀娑㈠礃椤旇 鍋撴担鍓叉建闁逞屽墴楠炲啴鍩¢崪浣规櫇濡炪値鍋掗崢濂杆夊鑸碘拺闁煎鍊曢弸鎴︽煟閻旀潙鍔ら柍褜鍓氶崙褰掑储閸撗冨灊闁割偁鍎辩粈鍐┿亜韫囨挻顥犻柨娑欑矒閺岋綁鎮╅崣澶屸敍闁诲繐绻戦悷锕傚疾閸洘鏅滅紒娑橆儐椤旀棃姊虹紒妯哄鐟滄澘鍟村鎶芥晲婢跺鍘遍梺鍐叉惈椤戝洨寮ч埀顒勬倵鐟欏嫭纾搁柛鏃€鍨块妴浣糕槈濮楀棙鍍靛銈嗗笒閸婃悂顢氭潏銊х瘈缁炬澘顦辩壕鍧楁煕鐎n偄鐏寸€规洘鍔欏浠嬵敇閻愭鍞堕梻浣虹帛閸旓箓宕滃璺虹煑闊洦绋掗悡锝夌叓閸ラ鍒板ù婊呭仦閵囧嫰鍩¢崒婊冨绩闂佸搫鏈ú婵堢不濞戙垹鍗抽柣鎰姈閻╊垶寮婚敓鐘茬劦妞ゆ帊鑳堕々鐑芥倵閿濆骸浜為柛妯圭矙濮婃椽鎮烽幍顔芥喖缂備浇顕ч崯顐︻敊韫囨挴鏀介悗锝庡亞閸橀亶姊洪崷顓炲妺闁哄被鍔戦妴鍌炴嚃閳哄啰锛滅紓鍌欑劍宀e灝煤鐎电硶鍋撳▓鍨灈闁绘牕銈搁悰顔锯偓锝庝簴閺€浠嬫煙闁缚绨界痪鐐劤閳规垶骞婇柛濠冾殕閹便劑鎮滈挊澶岋紱濠电偞鍨剁喊宥呯暦閸欏鍙忔俊鐐额嚙娴滈箖鎮楀▓鍨珮闁稿锕悰顔嘉熼懖鈺冿紲濠碘槅鍨崇划顖烆敂閻斿吋鈷掑ù锝堝Г绾爼鏌涢敐蹇曠暤妤犵偛绻橀弫鎾绘晸閿燂拷/QQ 1602007闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻锝夊箣閿濆憛鎾绘煕婵犲倹鍋ラ柡灞诲姂瀵噣宕奸悢鍛婎唶闂備胶枪椤戝棝骞愰崜褍鍨濇い鎾跺亹濡插牊淇婇婵愬殭婵炲憞鍥ㄢ拺婵炶尪顕ч獮妤呮煟閻斿弶娅婄€殿喖顭烽幃銏ゅ川婵犲嫮肖濠德板€х徊浠嬪疮椤栫儐鏁佺€广儱顦伴埛鎴︽煙閼测晛浠滈柍褜鍓氶悧鐘茬暦濠靛鍐€妞ゆ挾鍊i敃鍌涚厱闁哄洢鍔岄悘鐘绘煕閹般劌浜惧┑锛勫亼閸婃牠宕濋敃鈧…鍧楀焵椤掑倻纾兼い鏃囧亹閸╋絾鎱ㄦ繝鍌涙儓閻撱倝鎮归崶銊ョ祷缂佺姴鎼—鍐Χ閸愩劌顬堥梺缁橆殕閹瑰洭鎮伴钘夌窞鐎光偓閳ь剟鎯屽▎鎰闁糕剝锚閸斻倝鏌熼钘夌仸缂佺粯绻堟慨鈧柨婵嗘閵嗘劙姊洪幐搴㈢┛缂佺姵鎸搁悾鐑藉閻樺棙妞介、鏃堝川椤忓懎顏归梻鍌欑閹诧紕鎹㈤崒婧惧亾濮樼厧澧寸€殿喖鍟块埢搴ㄥ箻鐎电ǹ骞楁繝寰锋澘鈧劙宕戦幘缈犵箚妞ゆ劧绲块幊鍥┾偓瑙勬礃濞茬喖銆侀弴銏℃櫆閻熸瑱绲剧€氳棄鈹戦悙鑸靛涧缂佹彃娼¢獮濠囧箻濞茬粯鏅┑鐘诧工閹虫劗澹曟總鍛婂仯闁搞儯鍔岀徊濠氭煃瑜滈崜娆撴倶濠靛鍋╅柣鎴f缁犳盯鏌℃径濠勪虎缂佹劖绋掔换婵嬫偨闂堟刀銏ゆ倵濮橆剙妲婚悡銈夋煙闂傚鍔嶉柍閿嬪灴閹綊宕堕敐鍌氫壕鐎规洖娲犻崑鎾寸節濮橆厾鍘撻悷婊勭矒瀹曟粓鎮㈡總澶婃闂侀潧饪垫俊鍥€呴悜鑺ュ€甸柨婵嗛娴滅偤鏌涘Ο鎸庮棄闁宠鍨块崺銉╁幢濡ゅ啩娣繝鐢靛仜椤︽澘煤濠婂牊鍤嶉梺顒€绉撮柨銈嗕繆閵堝嫯鍏岄柛姗€浜跺Λ鍛搭敃閵忊€愁槱闂佽鐡曢褔鏁冮姀鈥愁嚤閻庢稒岣块崢顏堟⒑閹肩偛鍔€闁告劕褰炵槐鏃€淇婇妶鍥ラ柛瀣☉鐓ゆい鎾亾閳ь兛绶氬顕€宕煎┑鍡氣偓鍨攽閻愬弶顥為柛銊ф暬閻涱噣宕卞☉娆屾嫽闂佺ǹ鏈悷褔藝閿曞倹鐓欑痪鏉垮船娴滀即鏌熼姘拱鐎垫澘瀚禒锕傚箚瑜嶇花銉︾節閻㈤潧鈻堟繛浣冲吘娑樷槈閵忕姵杈堥梺鎸庢礀閸婂綊鎮″▎鎾寸厽闁瑰浼濋鍫熷€剁€广儱顦伴悡鏇熴亜閹伴潧浜楅梺顓у灡椤ㄣ儵鎮欑€电ǹ鈪归柤鎸庡姈閵囧嫰骞掗崱妞惧闂備浇顕уù姘椤忓牆钃熼柨鐔哄Т楠炪垺绻涢崱妤冪缂侇喖鐖煎铏光偓鍦濞兼劙鏌涢妸銉﹀仴妤犵偛鍟埢搴ょ疀閿濆懏娅婃俊鐐€栭弻銊╁触鐎n噮鏁婄€广儱鎳夐弨浠嬫煟濡澧柛鐔风箻閺屾盯鎮╅幇浣圭杹濡ょ姷鍋為崝娆撶嵁鎼淬劍瀵犲璺虹灱閺嗩偊鏌i悢鍝ョ煁婵☆偄鍟撮幃浼搭敊閸㈠鍠栧畷妤呮偂鎼达絽閰遍梻鍌欐祰閸嬫劙鍩涢崼銉ョ婵炴垯鍨瑰Ч鎻捗归悡搴f憼闁抽攱甯掗湁闁挎繂鎳忛崯鐐烘煕閻斿搫浠︾紒缁樼〒閹风姾顦撮柣锝囨暩閳ь剝顫夊ú鏍礊婵犲洤钃熼柛鈩冾殢閸氬鏌涘☉鍗炵伈缂侀亶浜跺缁樻媴閸涘﹤鏆堝┑鐐额嚋缁犳挸鐣疯ぐ鎺撶劶鐎广儱妫楁禍妤呮⒑閹稿海绠撴い锕備憾瀹曪綁骞樼紒妯煎幈闂侀潧顧€缁茶姤淇婃禒瀣€堕煫鍥ч瀹撳棝鏌熼鑲╃Ш妤犵偛娲畷婊勬媴閾忚顫岄梺璇插椤旀牠宕抽鈧畷鎴炵節閸屾粍娈炬繝闈涘€绘灙閸烆垶姊洪幐搴㈩梿妞ゎ偄顦遍埀顒佷亢濡嫰鍩為幋锔藉€烽悗娑櫭棄宥夋⒑缁洘娅呴柛鐔告綑閻g兘骞嬮敃鈧粻濠氭倵闂堟稒鎲告い鏃€娲樼换娑欐綇閸撗冨煂闂佸摜鍠庡ḿ鈥崇暦閵夈儙鐔烘偘閳╁喚娼旀繝纰樻閸ㄨ京鍒掑鍛傛盯宕橀妸褎娈惧銈呯箰閹冲繑鍒婇幘顔藉仭婵炲棗绻愰顏堟煟濠靛浂娈滄慨濠傤煼瀹曟帒鈻庨幋顓熜滈梻浣筋潐缁佹挳宕滃┑鍫㈢當闁绘棁鍋ら弮鍫濆窛妞ゆ挾濮峰畷鑸电節濞堝灝鏋熼弸顏嗙磽閸粌宓嗛柛鈹惧亾濡炪倖宸婚崑鎾绘煙閾忣個顏堫敋閿濆棛绡€婵﹩鍎甸妸鈺傜叆闁哄啠鍋撻柛搴㈠▕閻涱噣骞囬悧鍫氭嫽婵炶揪缍€椤宕戦悩缁樼厱閹兼惌鍠栧▍宥団偓娈垮枟瑜板啴鍩ユ径鎰潊闁绘ɑ褰冨▓銈夋⒒娴e憡鎯堥柛鐕佸亰閹勭節閸ャ劌浜楅梺鍛婂姦閸犳鎮¢悢鍏肩厽闁哄啫浼嬭ぐ鎹ゅ鈧綆鍠栭弸渚€鏌涢鐘插姕闁抽攱鍨块弻娑樷攽閸℃浼傞柣搴㈢婢瑰棛妲愰幒鎾崇窞閹兼惌鍠楃紞鍫熺箾閿濆懏鎼愰柨鏇ㄤ邯楠炲啫饪伴崼鐔风檮婵犮垹鍘滈弬鍌炲礉閹达箑钃熼柡鍥╁枎缁剁偞绻涢幋娆忕仾妞ゅ骸绉瑰鐑樺濞嗘帩鍚呯紓鍌氱С缁舵艾顕f繝姘櫜濠㈣泛顑呮禍婊堟⒑閸涘﹦缂氶柛搴㈠▕閹剝鎷呯化鏇熸杸闂佺粯锕╅崰鏍倶椤忓牊鐓ユ慨妯垮煐閹虫岸鏌i幇顔剧瘈缂佽妫濋弻鏇㈠醇濠靛洤娅ら梺闈╃秬濞咃絿妲愰幒妤佸亹闁告劕寮剁拠鐐测攽椤旂》鍔熺紒顕呭灦楠炲繘宕ㄩ弶鎴濈獩闂傚倸鐗婄粙鎺旀嫻閿熺姵鐓欐鐐茬仢閻忓弶顨ラ悙鏉戠瑨閾绘牠鏌嶈閸撶喖骞冮敓鐘插嵆闁靛骏绱曢崢鍗烆渻閵堝棗濮х紒鍙夊娣囧﹪宕堕浣哄幐闁诲函缍嗛崑鍛此夐崼銉︾厸鐎光偓鐎n剛鐦堥悗瑙勬礃閿曘垺淇婇幖浣肝ㄩ柕蹇曞С婢规洟鎮峰⿰鍛暭閻㈩垱甯炵划锝呂旈崨顔惧幍闂佽顔栭崰鏍€傛總鍛婄厱閻庯絻鍔屾俊浠嬫煏閸パ冾伃鐎殿喕绮欓幃浠嬫濞戞ḿ鍘掗梻鍌欑閹碱偊顢栭崶顒€绐楅柡宥庡幖缁犳牗淇婇妶鍌氫壕濡炪値鍋呯换鍫ュ箖濞嗘搩鏁嗛柍褜鍓熼、鏃堟晸閿燂拷
>更多相关文章
24小时热门资讯
24小时回复排行
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧湱鈧懓瀚崳纾嬨亹閹烘垹鍊炲銈嗗笒椤︿即寮查鍫熷仭婵犲﹤鍟扮粻濠氭煕閳规儳浜炬俊鐐€栫敮濠囨嚄閸洖鐓濋柟鍓х帛閻撴盯鏌涘☉鍗炴灓闁活厼鐬肩槐鎺楊敋閸涱厼绫嶉梺璇″枔閸ㄤ粙骞婇弽顓熷€绘俊顖涙た濡啴姊虹化鏇熸澒闁稿鎸搁—鍐Χ閸℃鐟ㄩ梺鍝ュУ瀹€绋款嚕閾忣偄顕遍悗娑櫱氶幏娲煟閻樺弶澶勭憸鏉垮暣椤㈡濮€閵堝棛鍘遍梺褰掑亰閸擄箓鎮¢崗纰辨闁绘劘灏欑粻濠氭煛娴h宕岄柡浣规崌閺佹捇鏁撻敓锟� 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闂囧鏌ㄥ┑鍡欏妞ゅ繒濮风槐鎺楀焵椤掍胶绡€闁稿本顨嗛弬鈧梻浣虹帛钃辩憸鏉垮暣閸┾偓妞ゆ巻鍋撴い鏇ㄥ幘濡叉劙骞橀幇浣瑰兊闁哄鐗勯崝宀勫几閹达附鈷戠痪顓炴噺瑜把呯磼閻樺啿鐏︽い銏狅躬濮婄粯鎷呯粵瀣秷婵犮垻鎳撳Λ娆撳疾鐠轰綍鏃堝川椤撶媴绱梻浣虹帛閸ㄥ吋鎱ㄩ妶澶嬪亗闁绘柨鍚嬮悡蹇涚叓閸パ屽剰闁诲浚浜弻锟犲幢韫囨梹鐝氶梺鍝勭焿缂嶄線寮幇鏉垮窛妞ゆ牗姘ㄩ崢鑺ョ節濞堝灝鏋涢柨鏇樺劚椤啴鎸婃竟鈺傜洴瀹曟﹢濡搁姀鈽嗘綌婵犳鍠楁灙濞存粠鍓熷鑸电鐎n偀鎷绘繛杈剧到閹虫瑨銇愰幒鎾存珖闂侀潧顦崕宥吤洪鍕敤濡炪倖甯掗崐椋庣磾閺囩偐鏀介柣妯活問閺嗩垱淇婇幓鎺撳殗鐎规洖缍婇幃鐣岀矙鐠侯煉绱遍梻浣哥秺閸嬪﹪宕曢棃娑掓闁靛繆鏅滈弲顒€鈹戦悙鏉戠仸闁绘姊婚懞杈ㄧ節濮橆厸鎷洪柣鐔哥懃鐎氼剛绮堥崘鈺冪濠㈣泛顑囬埊鏇犵磼閸屾稑娴柡浣稿暣瀹曟帒鈽夊顒€绠為梻鍌欑劍鐎笛呮崲閸岀偛绠犻煫鍥ㄧ☉缁犵喖鏌涘┑鍕姢缁炬儳銈稿鍫曞醇濞戞ê顬堝┑鐐存儗閸犳濡甸崟顖氼潊闁挎稑瀚崳浼存⒑閻熸壆锛嶉柛瀣ㄥ€栨穱濠囨倻閽樺)銊ф喐濠靛牊顫曢柨鏇炲€归埛鎺楁煕鐏炲墽鎳呮い锔肩畵閺岀喓鍠婇崡鐐板枈闂佽鍨伴張顒€顕ラ崟顐ゆ殕闁逞屽墰缁牊绻濋崒妯峰亾閹烘埈娼╅柨婵嗘噸婢规洟鏌f惔銈庢綈婵炲弶锚椤啯绂掔€n亝鐎悗骞垮劚椤︻垳绮堢€n喗鐓忓┑鐐茬仢閸旀瑥顭跨憴鍕婵﹥妞介獮鎰償閿濆洨鏆ゅ┑掳鍊楁慨鎾箟閿涘嫮鐭夌€广儱鎳夐崼顏堟煕閺囨娅冪紒銊ヮ煼濡懘顢曢姀鈥冲亶闂佺ǹ姘︾亸娆撳焵椤掍胶鍟查柟鍑ゆ嫹
闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簼閹癸綁鏌i鐐搭棞闁靛棙甯掗~婵嬫晲閸涱剙顥氬┑掳鍊楁慨鐑藉磻濞戔懞鍥偨缁嬪灝鐎俊銈忕到閸燁偆绮诲☉妯忓綊鏁愰崨顔跨缂備礁顑勭粈渚€鍩為幋锔藉亹闁割煈鍋呭В鍕節濞堝灝鏋ら柡浣割煼楠炲﹤鈹戠€n亞顦悷婊冪Ч钘熸慨姗嗗厴閺€浠嬫煟濡櫣锛嶆い锝嗙叀閺岋綁骞樼捄鐑樼亪闂佸搫鐭夌换婵嗙暦濮椻偓婵℃悂濡烽姀鐘卞闂佸憡绺块崕鏌ュ汲濠婂牊鐓曢柟鎹愬蔼閸忓瞼鐥幆褋鍋㈤柡宀嬬到铻i柧蹇曟缁辩偞绻濋埛鈧仦濂稿仐闂佸搫鑻粔鍫曞箟閹绢喖绀嬫い鎰╁€撶槐婵嬫⒒娴g瓔鍤冮柛鐘冲浮瀵煡鎮╅懡銈呯ウ闂佽宕橀褏绮婚幎鑺ョ厵闁绘劦鍓氶崕妤呮煕閻愭潙绲婚柍瑙勫灴閺佸秹宕熼鈩冩線闂備胶枪閿曘儵鎮ч弴鐘插疾婵犵數濞€濞佳兠洪姀锛勵浄闁割偁鍎查悡娆撴⒒閸屾凹鍤熸い锔煎缁辨帡鎮╅棃娑楁闂佸搫鏈ú妯兼崲濞戙垹鍨傛い鏃傚帶鑲栧┑鐘垫暩閸嬬喖顢栭弴銏犵闁硅揪绠戦拑鐔哥箾閹存瑥鐏╅柣鎺撴そ閺屾盯骞囬闂村闂佷紮缍€濞夋盯鈥旈崘顔嘉ч幖绮光偓鑼跺焻濠电偛鐡ㄧ划鐘崇濠婂牞缍栭煫鍥ㄦ媼濞差亶鏁傞柛鏇ㄤ簽閻愬﹪姊绘笟鈧ḿ褔藝椤撱垹纾挎繛宸簻閻掑灚銇勯幒宥囧妽鐎规洖鐭傞弻鈥崇暆閳ь剟宕伴弽褏鏆︽繛鍡樻尭鍥撮梺绯曞墲椤ㄥ繑瀵奸敓锟� 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧湱鈧懓瀚崳纾嬨亹閹烘垹鍊炲銈嗗笒椤︿即寮查鍫熷仭婵犲﹤鍟扮粻濠氭煕閳规儳浜炬俊鐐€栫敮濠囨嚄閸洖鐓濋柟鍓х帛閻撴盯鏌涘☉鍗炵仩鐎涙繈姊烘导娆戝埌闁搞垼灏悘鎺楁⒑閻撳寒娼熼柛濠冾殜閹線宕煎┑鍐╂杸濡炪倖姊归弸缁樼瑹濞戙垺鐓曟俊顖滅帛閸婃劖顨ラ悙鏉戝鐎规洘锕㈤、娆戞喆閿濆棗顏归梻鍌欑閹诧紕绮欓幋锔芥櫇闁靛绠戠欢鐐烘煕閺囥劌鐏¢柣鎾存礋閻擃偊宕堕妸锔规嫽闂侀潧妫欑敮锟犲蓟閻旇偐宓侀柛顭戝枤娴煎牓鎮楃憴鍕鐎规洦鍓熼崺銏℃償閵娿儳鐤€濡炪倖甯婇懗鍫曞焵椤掑嫮鐣烘慨濠勭帛閹峰懘宕ㄦ繝鍐ㄥ壍闂備胶枪閿曘倗绱炴繝鍥モ偓渚€寮借閺嬪酣鏌熼幆褍鏆遍柟顖滃仱濮婃椽宕崟顒€鍋嶉梺鎼炲妽濡炰粙骞冮敓鐘冲亜闁稿繗鍋愰崢顏堟椤愩垺澶勬繛鍙夌墪閻☆厽淇婇悙顏勨偓鎴﹀磿鏉堚晜宕叉慨妞诲亾鐎殿喖顭烽崺鍕礃閳轰緡鈧捇姊洪崨濠勭細闁稿孩鐩弫鎰緞鐎n剙骞嶅┑鐐存尰閼归箖鎮樺┑鍥︾箚闁稿繒顑曟禍婊勩亜閹板墎鎮奸柣顓熷笧閳ь剝顫夊ú鏍х暦椤掑啰浜欓梻渚€鈧偛鑻晶鎾煥濠靛牆浠辨い銏℃礋閺佸倻鎲撮敐鍡楊伖闂傚倷绀侀幉锛勭矙閹达腹鈧箓鍩€椤掑嫭鐓欓悗鐢登规牎闂佸搫妫欑划宥嗙┍婵犲洤围闁告侗鍘藉▓鏌ユ倵鐟欏嫭绀€鐎殿喖澧庨幑銏犫槈閵忕姷顓哄┑鐐叉缁绘帗绂掗懖鈺冪=濞达絽鎼鎾剁磽瀹ュ嫮绐旂€殿喖顭烽弫鎰緞婵犲嫮鏉告俊鐐€栭幐楣冨窗閹惧墎鐭欓柛銉墯閳锋帡鏌涚仦鎯у毈婵℃彃鎽滅槐鎺撳緞婵犲偆鏆㈠┑鈥冲级閸旀瑩鐛Ο灏栧亾闂堟稒鎲搁柟铏箞濮婃椽骞栭悙鎻掑Η闂佸憡娲﹂崢娲焽椤栨粎纾介柛灞捐壘閳ь剟顥撶划鍫熺瑹閳ь剝妫熼梻渚囧墮缁夊绮婚悩缁樼厵闁绘劦鍓氶妵鐔兼煛娴e壊鍎旈柡灞诲妼閳规垿宕卞鍡橈骏缂傚倷璁插褔宕戦幘瀵哥瘈婵炲牆鐏濋弸鐔兼煥閺囨娅婄€规洏鍨藉畷妤呮嚃閳哄﹥閿ゆ繝鐢靛Т閿曘倝鎮ф繝鍥х厱闁瑰濮风壕濂告倵閿濆骸骞楃痪顓炲缁辨帡鎮╅崘娴嬫灆闂佸搫鏈粙鎴g亽闂佺粯蓱瑜板啴寮虫繝鍥ㄧ厸閻庯綆鍋呴ˉ鍫ユ煟閹垮啫浜扮€规洖鐖兼俊姝岊槷濠殿喖娲娲箮閼恒儲鏆犻梺鎼炲妼濞尖€愁嚕鐠囨祴妲堟俊顖炴敱閺傗偓闂備胶纭堕崜婵嬨€冭箛鏃傤浄濠靛倸鎲¢埛鎴︽煕濠靛棗顏い銉у仱閺岋綁鎮㈤崣澶嬬彋閻庢鍠涢褔鍩ユ径濞炬瀻闁瑰濮峰Σ鍥⒒娴e懙褰掑嫉椤掑倻鐭欓柡宥庡亝閸忔粓鏌嶈閸撴稓妲愰幘璇茬<婵炲棙鍨肩粣妤呮⒑閸濄儱校闁绘濞€楠炲啳顦规鐐瘁缚閹风娀宕f径灞稿亾椤掑嫭鈷戦柣鐔告緲閳锋梻绱掗鍛仸鐎殿喗鐓¢獮鏍ㄦ媴閸︻厼寮抽梻浣虹帛濞叉牠宕愰崷顓涘亾濮樼偓瀚�
资讯 | QQ | 安全 | 编程 | 数据库 | 系统 | 网络 | 考试 | 站长 | 关于东联 | 安全雇佣 | 搞笑视频大全 | 微信学院 | 视频课程 |
关于我们 | 联系我们 | 广告服务 | 免责申明 | 作品发布 | 网站地图 | 官方微博 | 技术培训
Copyright © 2007 - 2025 Vm888.Com. All Rights Reserved
粤公网安备 44060402001498号 粤ICP备19097316号 请遵循相关法律法规
');})();