日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IPCamera

發布時間:2024/3/12 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IPCamera 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在以前的框架基礎上加入光學變焦和藍牙麥克風采集音頻

目前兩個功能都已經加入了。在spydroid 8.0版本對音視頻同步做得比較好,暫且使用8.0版本的源代碼。


藍牙采集音頻修改內容

AACStream.java?

public AACStream() throws IOException {super();mPacketizer = new AACADTSPacketizer();setAudioSource(MediaRecorder.AudioSource.DEFAULT); //modify try {Field deprecatedName = MediaRecorder.OutputFormat.class.getField("AAC_ADTS");setOutputFormat(deprecatedName.getInt(null));} catch (Exception e) {throw new AACNotSupportedException();}setAudioEncoder(MediaRecorder.AudioEncoder.AAC);setAudioSamplingRate(16000);}
AudioStream.java

public void prepare() throws IllegalStateException, IOException {// Resets the recorder in case it is in a bad statemMediaRecorder.reset();mMediaRecorder.setAudioSource(mAudioSource);mMediaRecorder.setOutputFormat(mOutputFormat);mMediaRecorder.setAudioEncoder(mAudioEncoder);mMediaRecorder.setAudioChannels(1);mMediaRecorder.setAudioSamplingRate(mSamplingRate); /** add*/try {super.prepare();} catch (Exception e) {Log.i("BlueT", "prepare() failed");}if (!SpydroidActivity.instance.mAudioManager.isBluetoothScoAvailableOffCall()) {Log.i("BlueT", "No support bluetooth");return;}Log.i("BlueT", "support bluetooth");SpydroidActivity.instance.mAudioManager.stopBluetoothSco();SpydroidActivity.instance.mAudioManager.startBluetoothSco();/** add*/try {Thread.sleep(1000);} catch (Exception e) {// TODO: handle exception}SpydroidActivity.instance.mAudioManager.setBluetoothScoOn(true);Log.i("BlueT", "Routing:" + SpydroidActivity.instance.mAudioManager.isBluetoothScoOn());SpydroidActivity.instance.mAudioManager.setMode(AudioManager.STREAM_MUSIC);}}
加上權限:

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

<uses-permission android:name="android.permission.BLUETOOTH"/>

<uses-permission android:name="android.permission.BROADCAST_STICKY"/>

光學變焦修改內容:

public android.hardware.Camera mCamera = null; //add public static SpydroidActivity instance = null; //add public AudioManager mAudioManager = null; //add

@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubswitch (keyCode) {case KeyEvent.KEYCODE_ZOOM_IN:Log.i("ZOOM", "放大");setZoom1();break;case KeyEvent.KEYCODE_ZOOM_OUT:Log.i("ZOOM", "縮小");setZoom2();break;default:break;}return super.onKeyDown(keyCode, event);}public boolean isSupportZoom(){boolean isSuppport = false;if (mCamera.getParameters().isZoomSupported()){isSuppport = true;}return isSuppport;}public void setZoom1(){if (isSupportZoom()){try{Parameters params = mCamera.getParameters();final int MAX = params.getMaxZoom();int zoomValue = params.getZoom();Log.i("ZOOM", "-----------------MAX:"+MAX+" params : "+zoomValue);if (zoomValue <= 14) {zoomValue += 1;params.setZoom(zoomValue);mCamera.setParameters(params);}Log.i("ZOOM", "Is support Zoom " + params.isZoomSupported());}catch (Exception e){Log.i("ZOOM", "--------exception zoom");e.printStackTrace();}}else{Log.i("ZOOM", "--------the phone not support zoom");}}public void setZoom2(){if (isSupportZoom()){try{Parameters params = mCamera.getParameters();final int MAX = params.getMaxZoom();int zoomValue = params.getZoom();Log.i("ZOOM", "-----------------MAX:"+MAX+" params : "+zoomValue);if (zoomValue >= 1) {zoomValue -= 1;params.setZoom(zoomValue);mCamera.setParameters(params);}Log.i("ZOOM", "Is support Zoom " + params.isZoomSupported());}catch (Exception e){Log.i("ZOOM", "--------exception zoom");e.printStackTrace();}}else{Log.i("ZOOM", "--------the phone not support zoom");}} public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mApplication = (SpydroidApplication) getApplication();setContentView(R.layout.spydroid);mCamera = android.hardware.Camera.open(); //addinstance = this; //addmAudioManager = (AudioManager)getSystemService(AUDIO_SERVICE); //addif (findViewById(R.id.handset_pager) != null) {// Handset detected !mAdapter = new SectionsPagerAdapter(getSupportFragmentManager());mViewPager = (ViewPager) findViewById(R.id.handset_pager);setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);mSurfaceView = (SurfaceView)findViewById(R.id.handset_camera_view);mSurfaceHolder = mSurfaceView.getHolder();// We still need this line for backward compatibility reasons with android 2mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);SessionBuilder.getInstance().setSurfaceHolder(mSurfaceHolder);} else {// Tablet detected !device = TABLET;mAdapter = new SectionsPagerAdapter(getSupportFragmentManager());mViewPager = (ViewPager) findViewById(R.id.tablet_pager);setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);mApplication.videoQuality.orientation = 0;}mViewPager.setAdapter(mAdapter);// Remove the ads if this is the donate version of the app.if (mApplication.DONATE_VERSION) {((LinearLayout)findViewById(R.id.adcontainer)).removeAllViews();}// Prevents the phone to go to sleep modePowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);mWakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "net.majorkernelpanic.spydroid.wakelock");// Starts the service of the RTSP serverthis.startService(new Intent(this,CustomRtspServer.class));}

加上權限:

<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" />


總結

以上是生活随笔為你收集整理的IPCamera的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。