package io.cine.example;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import org.json.JSONException;
import org.json.JSONObject;
import io.cine.android.BroadcastConfig;
import io.cine.android.CineIoClient;
import io.cine.android.CineIoConfig;
import io.cine.android.api.Stream;
public class CineIoStreamViewActivity extends Activity {
private Stream stream;
private final static String TAG = "CineIoStreamViewActivity";
private CineIoClient mClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cine_io_stream_view);
Bundle extras = getIntent().getExtras();
CineIoConfig config = new CineIoConfig();
config.setSecretKey(extras.getString("SECRET_KEY"));
mClient = new CineIoClient(config);
try {
stream = new Stream(new JSONObject(extras.getString("STREAM_DATA")));
} catch (JSONException e) {
e.printStackTrace();
}
initLayout();
}
private void initLayout() {
final Activity me = this;
String labelText;
String name = stream.getName();
if (name != null) {
labelText = stream.getName() + ": " + stream.getId();
} else {
labelText = stream.getId();
}
TextView v = (TextView) findViewById(R.id.streamName);
v.setText(labelText);
Button broadcastButton = (Button) findViewById(R.id.broadcastStream);
broadcastButton.setText("Start Broadcaster");
broadcastButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "Starting broadcast for " + stream.getId());
BroadcastConfig config = new BroadcastConfig();
//TO SET A CUSTOM WIDTH AND HEIGHT
//config.setWidth(640);
//config.setHeight(480);
//TO LOCK AN ORIENTATION
//config.lockOrientation("landscape");
//TO SELECT A CAMERA
//config.selectCamera("back");
//TO CHANGE THE BROADCAST LAYOUT
//config.setBroadcastActivityLayout(R.layout.my_activity_broadcast_capture);
mClient.broadcast(stream.getId(), config, me);
}
});
Button playButton = (Button) findViewById(R.id.playStream);
playButton.setText("Start Player");
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "Starting player for " + stream.getId());
mClient.play(stream.getId(), me);
}
});
Button seeRecordingsButton = (Button) findViewById(R.id.showRecordings);
seeRecordingsButton.setText("Recordings");
seeRecordingsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "Fetching recordings for " + stream.getId());
Intent intent = new Intent(me, CineIoStreamRecordingsListActivity.class);
intent.putExtra("STREAM_DATA", stream.dataString());
intent.putExtra("SECRET_KEY", mClient.getSecretKey());
startActivity(intent);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.cine_io_stream_view, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}