0
我有一個項目android應用程序流視頻從視頻網址保存在數據庫中。但我不知道如何顯示視頻網址在數據庫中的視頻?請幫我.... :)如何在android中顯示來自外部數據庫(mysql)的視頻url?
public class PlayerActivity extends Activity {
private stream stream;
private ServerRequest server;
private Object newString;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player);
stream = new stream();
server = new ServerRequest();
if (savedInstanceState == null) {
Bundle extras = getIntent().getExtras();
if(extras == null) {
newString= null;
} else {
newString= extras.getString("alamat");
}
} else {
newString= (String) savedInstanceState.getSerializable("alamat");
}
final VideoView vid = (VideoView) findViewById(R.id.videoView);
Uri video = Uri.parse(server.sendGetRequest(ServerRequest.urlSelectAll+"?id="+stream.getId().toString()));
vid.setVideoURI(video);
MediaController hhh = new MediaController(this);
vid.setMediaController(hhh);
vid.requestFocus();
vid.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
我想播放視頻時,我從列表視圖中單擊,從我的數據庫查看該列表中凡在我的數據庫表有2 coloumn:視頻名稱和視頻網址。這是我對列表視圖的主要活動
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private ListView listView;
private ActionMode actionMode;
private ActionMode.Callback amCallback;
private ProgressDialog progressDialog;
private ServerRequest serverRequest;
private List<stream> list;
private ListAdapterStream adapter;
private stream selectedList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
serverRequest = new ServerRequest();
listView = (ListView) findViewById(R.id.listview_main);
list = new ArrayList<stream>();
/** melakukan load data melalui AsyncTask */
new MainActivityAsync().execute("load");
}
private List<stream> processResponse(String response){
List<stream> list = new ArrayList<stream>();
try {
JSONObject jsonObj = new JSONObject(response);
JSONArray jsonArray = jsonObj.getJSONArray("stream");
Log.d(TAG, "data lengt: "+jsonArray.length());
stream str = null;
for(int i = 0; i < jsonArray.length(); i++){
JSONObject obj = jsonArray.getJSONObject(i);
str = new stream();
str.setId(obj.getInt("id"));
str.setVideo(obj.getString("video"));
str.setAlamat(obj.getString("alamat"));
list.add(str);
}
} catch (JSONException e) {
Log.d(TAG, e.getMessage());
}
return list;
}
private void populateListView(){
adapter = new ListAdapterStream(getApplicationContext(), list);
listView.setAdapter(adapter);
listView.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View v, int pos, long id) {
if(actionMode != null){
return false;
}
actionMode = startActionMode(amCallback);
v.setSelected(true);
selectedList = (stream) adapter.getItem(pos);
return true;
}
});
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View v, int pos,
long id) {
selectedList = (stream) adapter.getItem(pos);
Intent in = new Intent(getApplicationContext(), PlayerActivity.class);
in.putExtra("id", selectedList.getId().toString());
in.putExtra("alamat", selectedList.getAlamat());
startActivity(in);
}
});
}
private class MainActivityAsync extends AsyncTask<String, Void, String>{
@Override
protected void onPreExecute() {
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("retrieving...");
progressDialog.setIndeterminate(false);
progressDialog.setCancelable(false);
progressDialog.show();
}
@Override
protected String doInBackground(String... params) {
/** Mengirimkan request ke server dan memproses JSON response */
String response = serverRequest.sendGetRequest(ServerRequest.urlSelectAll);
list = processResponse(response);
return null;
}
@Override
protected void onPostExecute(String result) {
progressDialog.dismiss();
runOnUiThread(new Runnable() {
@Override
public void run() {
populateListView();
}
});
}
}
}