Ich habe eine Datenbank in MySQL erstellt und hinzugefügt Videos als Blobs. Ich versuche herauszufinden, wie ich diese Videos jetzt in meiner Android-Anwendung abspielen kann, indem ich mich mit der Datenbank verbinde und sie basierend auf ihrer ID abspiele. Ich weiß nicht einmal, wo ich damit anfangen soll. Ich habe online geschaut und es gibt keine Tutorials, wie man ein Video aus einer MySQL-Datenbank spielt. Wenn jemand ein nützliches Tutorial dazu kennt, wäre das sehr hilfreich oder wenn sie es mir erklären könnten.Wie man ein Video von einer MySQL-Datenbank in Android
Ich habe bereits versucht, eine grundlegende Login-Android-App zu erstellen, um zu versuchen und zu verstehen, wie man Informationen in eine Datenbank bekommt und posten kann. Unten ist der Code dafür. Aber wie gesagt, es gibt keine Anleitungen, wie ich Videos aus einer Datenbank abspielen könnte. Wenn also jemand weiß oder mir zeigen könnte, wie ich diesen Code modifizieren kann, um Videos aus der Datenbank herunterzuladen, wäre das auch sehr hilfreich.
public class MainActivity extends AppCompatActivity {
EditText ET_NAME,ET_PASS;
String login_name, login_pass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ET_NAME = (EditText)findViewById(R.id.user_name);
ET_PASS = (EditText)findViewById(R.id.user_pass);
}
public void userLogin(View view){
login_name = ET_NAME.getText().toString();
login_pass = ET_PASS.getText().toString();
String method = "login";
BackgroundTask backgroundTask = new BackgroundTask(this);
backgroundTask.execute(method, login_name,login_pass);
}
}
public class BackgroundTask extends AsyncTask<String, Void, String> {
Context context;
AlertDialog alertDialog;
BackgroundTask(Context context){
this.context = context;
}
@Override
protected void onPreExecute() {
alertDialog = new AlertDialog.Builder(context).create();
alertDialog.setTitle("login info...");
}
@Override
protected String doInBackground(String... params) {
String login_url = "http://192.168.157.1/login.php";
String method = params[0];
if(method.equals("login")){
String login_name = params[1];
String login_pass = params[2];
try {
URL url = new URL(login_url);
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
httpURLConnection.setDoInput(true);
OutputStream outputStream = httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
String data = URLEncoder.encode("login_name", "UTF-8")+"="+URLEncoder.encode(login_name,"UTF-8")+"&"+
URLEncoder.encode("login_pass", "UTF-8")+"="+URLEncoder.encode(login_pass,"UTF-8");
bufferedWriter.write(data);
bufferedWriter.flush();
bufferedWriter.close();
outputStream.close();
InputStream inputStream = httpURLConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
String response = "";
String line = "";
while((line = bufferedReader.readLine()) != null){
response += line;
}
bufferedReader.close();
inputStream.close();
httpURLConnection.disconnect();
return response;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String result) {
alertDialog.setMessage(result);
alertDialog.show();
}
}
Dateien nicht in einer Datenbank speichern. http://StackOverflow.com/a/41235395/267540 es ist schlimm genug, um Bilder zu speichern, aber das Speichern von Video ist viel viel viel schlechter – e4c5
Speichern kleiner Dateien (<100k jeder) in einer Datenbank ist in Ordnung, wenn nicht allgemein üblich. Alles Größere ist derzeit eine schlechte Idee. – Strawberry