80,351
社区成员
发帖
与我相关
我的任务
分享
//-----------送视频----------------
mReceivedVideoDataCallback = new DJICamera.CameraReceivedVideoDataCallback() {
@Override
public void onResult(byte[] videoBuffer, int size) {
if (null != videoBuffer) {
SendVideoData(videoBuffer); //发送视频
}
}
};
//-----------送数据----------------
try {
mUpdateSystemStateCallback=new DJIFlightControllerDelegate.FlightControllerUpdateSystemStateCallback(){
@Override
public void onResult(DJIFlightControllerDataType.DJIFlightControllerCurrentState
djiFlightControllerCurrentState) {
if (null != djiFlightControllerCurrentState) {
mStringBuffer=new StringBuffer();
mStringBuffer.delete(0, mStringBuffer.length());
mStringBuffer.append("Altitude: ")
.append(djiFlightControllerCurrentState.getAircraftLocation().getAltitude()).append("\n");
mHandler.sendEmptyMessage(CHANGE_TEXT_VIEW_STRING);
}
}
};
private void SendVideoData(final byte[] buffer){
new Thread(new Runnable() {
@Override
public void run() {
while (flag) {
try {
socketByte = new Socket(IP, PORTByte);
if(ByteFlag) {
ByteFlag=false;
isbyte = new ByteArrayInputStream(buffer);
byte buffer[] = new byte[1024];
int temp = 0;
osbyte = socketByte.getOutputStream();
//is.read:从输入流(byte buffer[])中读取一部分放到temp中
while ((temp = isbyte.read(buffer)) != -1) {
//从buffer中第0开始写temp长度
osbyte.write(buffer, 0, temp);
}
osbyte.flush();
osbyte.close();
isbyte.close();
ByteFlag=true;
Thread.sleep(500);
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch(InterruptedException e){
//TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}).start();
}
protected Handler mHandler = new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(Message msg) {
switch (msg.what) {
case CHANGE_TEXT_VIEW_STRING :
SendData();
case CHANGE_TEXT_VIEW_BYTE :
SendVideoData();
default:
break;
}
return false;
}
});