自1月以來,libsreaming
已被固定在Glass上工作。它的RTSP視頻可以在VLC播放器或插件中輕鬆查看。下面的代碼不包括自動生成的存根。
public class MainActivity extends Activity implements SurfaceHolder.Callback, Session.Callback {
private int mRtspPort = -1;
private ServiceConnection mRtspServerConnection = new ServiceConnection() {
private static final int RTSP_PORT = 1234;
@Override
public void onServiceConnected(ComponentName className, IBinder binder) {
RtspServer s = ((RtspServer.LocalBinder) binder).getService();
s.setPort(RTSP_PORT);
mRtspPort = s.getPort();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_main);
// Configures the SessionBuilder
SessionBuilder.getInstance()
.setSurfaceView((SurfaceView) findViewById(R.id.surface))
.setCallback(this)
.setPreviewOrientation(90)
.setContext(getApplicationContext())
.setAudioEncoder(SessionBuilder.AUDIO_NONE)
.setVideoEncoder(SessionBuilder.VIDEO_H264)
.setVideoQuality(new VideoQuality(320, 240, 20, 500000));
// Starts the RTSP server
bindService(new Intent(this, RtspServer.class), mRtspServerConnection, Context.BIND_AUTO_CREATE);
}
@Override
public void onResume() {
super.onResume();
mResumed = true;
displayConnectString();
SessionBuilder.getInstance().getSurfaceView().setAspectRatioMode(SurfaceView.ASPECT_RATIO_PREVIEW);
SessionBuilder.getInstance().getSurfaceView().getHolder().addCallback(this);
}
private void displayConnectString() {
WifiManager wifiMgr = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiMgr.getConnectionInfo();
int ip = wifiInfo.getIpAddress();
String ipAddress = Formatter.formatIpAddress(ip);
((TextView) findViewById(R.id.connectInfo)).setText("rtsp://" + ipAddress + ":" + mRtspPort);
}
@Override
public void onDestroy() {
super.onDestroy();
unbindService(mRtspServerConnection);
}
@Override
public void onSessionStarted() {
((TextView) findViewById(R.id.connectInfo)).setText("");
}
@Override
public void onSessionStopped() {
displayConnectString();
}
}
谷歌玻璃連接到的WebRTC:http://tech.pristine.io/pristine-presents-at-the-austin-gdg/(感謝[阿林森達](HTTP://www.realtimeweekly。 com)) –