in native-codec/app/src/main/java/com/example/nativecodec/NativeCodec.java [57:203]
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
mGLView1 = (MyGLSurfaceView) findViewById(R.id.glsurfaceview1);
// set up the Surface 1 video sink
mSurfaceView1 = (SurfaceView) findViewById(R.id.surfaceview1);
mSurfaceHolder1 = mSurfaceView1.getHolder();
mSurfaceHolder1.addCallback(new SurfaceHolder.Callback() {
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
Log.v(TAG, "surfaceChanged format=" + format + ", width=" + width + ", height="
+ height);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
Log.v(TAG, "surfaceCreated");
if (mRadio1.isChecked()) {
setSurface(holder.getSurface());
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
Log.v(TAG, "surfaceDestroyed");
}
});
// initialize content source spinner
Spinner sourceSpinner = (Spinner) findViewById(R.id.source_spinner);
ArrayAdapter<CharSequence> sourceAdapter = ArrayAdapter.createFromResource(
this, R.array.source_array, android.R.layout.simple_spinner_item);
sourceAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sourceSpinner.setAdapter(sourceAdapter);
sourceSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
mSourceString = parent.getItemAtPosition(pos).toString();
Log.v(TAG, "onItemSelected " + mSourceString);
}
@Override
public void onNothingSelected(AdapterView parent) {
Log.v(TAG, "onNothingSelected");
mSourceString = null;
}
});
mRadio1 = (RadioButton) findViewById(R.id.radio1);
mRadio2 = (RadioButton) findViewById(R.id.radio2);
OnCheckedChangeListener checklistener = new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Log.i("@@@@", "oncheckedchanged");
if (buttonView == mRadio1 && isChecked) {
mRadio2.setChecked(false);
}
if (buttonView == mRadio2 && isChecked) {
mRadio1.setChecked(false);
}
if (isChecked) {
if (mRadio1.isChecked()) {
if (mSurfaceHolder1VideoSink == null) {
mSurfaceHolder1VideoSink = new SurfaceHolderVideoSink(mSurfaceHolder1);
}
mSelectedVideoSink = mSurfaceHolder1VideoSink;
mGLView1.onPause();
Log.i("@@@@", "glview pause");
} else {
mGLView1.onResume();
if (mGLView1VideoSink == null) {
mGLView1VideoSink = new GLViewVideoSink(mGLView1);
}
mSelectedVideoSink = mGLView1VideoSink;
}
switchSurface();
}
}
};
mRadio1.setOnCheckedChangeListener(checklistener);
mRadio2.setOnCheckedChangeListener(checklistener);
mRadio2.toggle();
// the surfaces themselves are easier targets than the radio buttons
mSurfaceView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mRadio1.toggle();
}
});
mGLView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mRadio2.toggle();
}
});
// initialize button click handlers
// native MediaPlayer start/pause
((Button) findViewById(R.id.start_native)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!mCreated) {
if (mNativeCodecPlayerVideoSink == null) {
if (mSelectedVideoSink == null) {
return;
}
mSelectedVideoSink.useAsSinkForNative();
mNativeCodecPlayerVideoSink = mSelectedVideoSink;
}
if (mSourceString != null) {
mCreated = createStreamingMediaPlayer(getResources().getAssets(),
mSourceString);
}
}
if (mCreated) {
mIsPlaying = !mIsPlaying;
setPlayingStreamingMediaPlayer(mIsPlaying);
}
}
});
// native MediaPlayer rewind
((Button) findViewById(R.id.rewind_native)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mNativeCodecPlayerVideoSink != null) {
rewindStreamingMediaPlayer();
}
}
});
}