如何从android

时间:2017-01-04 07:26:59

标签: php android mysql database video

我在mysql中创建了一个数据库,并以blob的形式添加了视频。我试图通过连接到数据库并根据他们的id播放它们来弄清楚如何在我的Android应用程序中播放这些视频。我甚至不知道从哪里开始如何做到这一点。我在网上看过,没有关于如何从mysql数据库播放视频的教程。如果有人知道有关如何做到这一点的任何有用的教程,那将非常有用,或者如果他们可以向我解释。

我已经尝试创建一个基本的登录Android应用程序,试图了解如何获取和发布信息到数据库。下面是它的代码。但正如我所说,没有关于如何从数据库播放视频的教程。因此,如果有人知道或可以告诉我如何修改此代码以从数据库下载视频,那将非常有用。

 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();
    }
    }

1 个答案:

答案 0 :(得分:0)

只是添加上面的评论 - 您可能需要一个数据库,以便您可以对标题,演员等进行查询,以帮助用户找到他们想要观看的视频。

通常,关于视频的这些“元数据”确实存储在数据库中,同时还有视频链接。视频本身存储为文件。

在更复杂的解决方案中,您可能希望通过专用的流媒体服务器(例如http://www.videolan.org/vlc/streaming.html)实际提供视频服务,这将允许Android设备上的客户端自动选择与设备显示匹配的流媒体大小和当前的网络条件。

在这种情况下,流式传输服务器实际上可能会创建多个版本的视频,具体取决于用户质量对部署的重要程度。