Медиаплеер как веб-сервис
Я новичок в разработке Android. Мне нужно получить представление о том, как развернуть видео / аудио файл как веб-сервис на сервере Glass-Fish, а затем вызвать веб-сервис с клиентского устройства (Mobile). Пожалуйста, помогите мне получить очень основную идею. Я уже запустил много (простых) приложений на сервере и успешно вызвал их с клиентского устройства. На этот раз нужно вызвать аудио / видео файл и получить его на моем клиентском устройстве.
Спасибо
2 ответа
Два класса веб-сервера...
1-
package org.ali.javabrains.business;
import java.util.ArrayList;
import java.util.List;
public class BusinessProductImpl {
List<String> bookList= new ArrayList<String>();
List<String> moviesList= new ArrayList<String>();
List<String> musicList= new ArrayList<String>();
public BusinessProductImpl(){
bookList.add("swatnama");
bookList.add("yadona");
bookList.add("ka ta raghali za ba gul sham");
musicList.add ("hamayun album1");
musicList.add ("bkhtayar Khatak");
musicList.add ("zare sandary");
moviesList.add("bajrangi bhai jan");
moviesList.add("Terminator 2");
moviesList.add("Salam Namasty");
}
public List<String> getProductCategories(){
List<String> categories=new ArrayList<>();
categories.add("books");
categories.add("Movies");
categories.add("Music");
return categories;
}
public List<String> getProducts(String category){
switch (category.toLowerCase()) {
case "books":
return bookList;
case "music":
return musicList;
case "movies":
return moviesList;
}
return null;
}
public boolean addProduct(String category, String product){
switch (category.toLowerCase()) {
case "books":
bookList.add(product);
break;
case "music":
musicList.add(product);
break;
case "movies":
moviesList.add(product);
break;
default:
return false;
}
return true;
}
}
2-.....
package org.ali.javabrains;
import java.util.List;
import org.ali.javabrains.business.BusinessProductImpl;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class ProductCatalog {
BusinessProductImpl BpImpl=new BusinessProductImpl();
@WebMethod
public List<String> getProductCategories(){
return BpImpl.getProductCategories();
}
@WebMethod
public List<String> getProducts(String category){
return BpImpl.getProducts(category);
}
public boolean addProduct(String category, String product){
return BpImpl.addProduct(category, product);
}
public int addnumbers(int a, int b){
return (a+b);
}
public int minusnumbers(int a, int b){
return (a-b);
}
}
и звонки с клиентского устройства...
1-
package com.example.bookwservice;
import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.AndroidHttpTransport;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private static final String
SOAP_ACTION1="http://javabrains.ali.org/addnumbers";
private static final String METHOD_NAME1="addnumbers";
private static final String
SOAP_ACTION2="http://javabrains.ali.org/minusnumbers";
private static final String METHOD_NAME2="minusnumbers";
private static final String NAMESPACE="http://javabrains.ali.org/";
private static final String
URL="http://172.25.181.54:8080/TestWeb/ProductCatalogService";
TextView tv1, tv2, tv3;
EditText et1, et2,et3;
Button bt1, bt2, bt3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1=(TextView)findViewById(R.id.textView1);
tv2=(TextView)findViewById(R.id.textView2);
tv3=(TextView)findViewById(R.id.textView3);
et1=(EditText)findViewById(R.id.editText1);
et2=(EditText)findViewById(R.id.editText2);
et3=(EditText)findViewById(R.id.editText3);
bt1=(Button)findViewById(R.id.button1);
bt2=(Button)findViewById(R.id.button2);
bt3=(Button)findViewById(R.id.button3);
et1.requestFocus();
bt1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SoapObject request=new SoapObject(NAMESPACE, METHOD_NAME1);
request.addProperty("arg0",et1.getText().toString());
request.addProperty("arg1",et2.getText().toString());
SoapSerializationEnvelope soapEnvelope =new
SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet=false;
soapEnvelope.setOutputSoapObject(request);
AndroidHttpTransport aht=new AndroidHttpTransport(URL);
try {
aht.call(SOAP_ACTION1, soapEnvelope);
SoapPrimitive resultString=
(SoapPrimitive)soapEnvelope.getResponse();
et3.setText("" +resultString);
}
catch (Exception e){
e.printStackTrace();
}
}});
bt2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
SoapObject request=new SoapObject(NAMESPACE, METHOD_NAME2);
request.addProperty("arg0",et1.getText().toString());
request.addProperty("arg1",et2.getText().toString());
SoapSerializationEnvelope soapEnvelope =new
SoapSerializationEnvelope(SoapEnvelope.VER11);
soapEnvelope.dotNet=false;
soapEnvelope.setOutputSoapObject(request);
AndroidHttpTransport aht=new AndroidHttpTransport(URL);
try {
aht.call(SOAP_ACTION2, soapEnvelope);
SoapPrimitive resultString=
(SoapPrimitive)soapEnvelope.getResponse();
et3.setText("" +resultString);
}
catch (Exception e){
e.printStackTrace();
}
}});
bt3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
et1.setText("");
et2.setText("");
et3.setText("");
et1.requestFocus();
}
catch (Exception e){
e.printStackTrace();
}
}});
}
}
Я уже запустил много (простых) приложений на сервере и успешно вызвал их с клиентского устройства.
Я не уверен, что вы спрашиваете. Аудио или видео файлы передаются так же, как и все остальное. У вас есть те же проблемы, что и при переносе строки "Hello World".
Если это воспроизведение, с которым вы боретесь, это отличный учебник для медиаплеера. MediaPlayer Tutorial