/*
*
* Copyright (c) 2010-2014 EVE GROUP PTE. LTD.
*
*/
package veg.rtspplr.sdk.rtsptestplr;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.TextView;
import android.view.inputmethod.InputMethodManager;
import android.view.WindowManager;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.PixelFormat;
import android.view.*;
import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import android.widget.TextView.OnEditorActionListener;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Toast;
import java.nio.ByteBuffer;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.HashSet;
import java.util.ArrayList;
import android.preference.PreferenceManager;
import veg.mediaplayer.sdk.MediaPlayer;
import veg.mediaplayer.sdk.MediaPlayer.PlayerNotifyCodes;
import veg.mediaplayer.sdk.MediaPlayerConfig;
class MyWebViewClient extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
}
public class MainActivity extends Activity implements OnClickListener, MediaPlayer.MediaPlayerCallback
{
public static AutoCompleteTextView edtIpAddress;
public static ArrayAdapter<String> edtIpAddressAdapter;
public static Set<String> edtIpAddressHistory;
private Button btnConnect;
private Button btnHistory;
private SharedPreferences settings;
private SharedPreferences.Editor editor;
private boolean playing = false;
private MediaPlayer player = null;
private MainActivity mthis = null;
private Handler handler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
PlayerNotifyCodes status = (PlayerNotifyCodes) msg.obj;
if (status == PlayerNotifyCodes.CP_CONNECT_STARTING)
{
player.setVisibility(View.VISIBLE);
}
if (status == PlayerNotifyCodes.PLP_CLOSE_STARTING)
{
player.setVisibility(View.INVISIBLE);
}
}
};
// callback from Native Player
public int Status(int arg)
{
Log.e("SDL", "Form Native Player status: " + arg);
Message msg = new Message();
msg.obj = PlayerNotifyCodes.forValue(arg);
if (handler != null)
handler.sendMessage(msg);
return 0;
}
protected float pxFromDp(float dp)
{
return (dp * getResources().getDisplayMetrics().density);
}
@Override
public void onCreate(Bundle savedInstanceState)
{
String strUrl;
setTitle(R.string.app_name);
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mthis = this;
player = new MediaPlayer(this);
float w = pxFromDp(250f);
float h = pxFromDp(250f);
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, Gravity.CENTER);
player.setLayoutParams(params);
FrameLayout lp = (FrameLayout)findViewById(R.id.playerView);
lp.addView(player);
Log.e("Test", "RTSPPLayer instance " + player);
settings = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
strUrl = settings.getString("connectionUrl", "rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov");
loadPrefSettings();
savePrefSettings();
WebView mWebView = (WebView) findViewById(R.id.webView1);
//mWebView.setWebViewClient(new MyWebViewClient());
//mWebView.getSettings().setJavaScriptEnabled(true);
//mWebView.getSettings().setBuiltInZoomControls(true);
//mWebView.loadUrl("http://www.google.com");
WebView mWebView2 = (WebView) findViewById(R.id.webView2);
mWebView2.setWebViewClient(new MyWebViewClient());
mWebView2.getSettings().setJavaScriptEnabled(true);
mWebView2.getSettings().setBuiltInZoomControls(true);
mWebView2.loadUrl("http://rtpstream.com/test.html");
mWebView2.setBackgroundColor(Color.TRANSPARENT);
HashSet<String> tempHistory = new HashSet<String>();
tempHistory.add("rtsp://184.72.239.149/vod/mp4:BigBuckBunny_115k.mov");
edtIpAddressHistory = settings.getStringSet("connectionHistory", tempHistory);
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
edtIpAddress = (AutoCompleteTextView)findViewById(R.id.edit_ipaddress);
edtIpAddress.setText(strUrl);
edtIpAddress.setOnEditorActionListener(new OnEditorActionListener()
{
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
{
if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER))
{
InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(edtIpAddress.getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
return true;
}
return false;
}
});
btnHistory = (Button)findViewById(R.id.button_history);
// Array of choices
btnHistory.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(MainActivity.edtIpAddress.getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
if (edtIpAddressHistory.size() <= 0)
return;
String urlHistory[] = { };
MainActivity.edtIpAddressAdapter = new ArrayAdapter<String>(MainActivity.this, R.layout.history_item, new ArrayList<String>(edtIpAddressHistory));
MainActivity.edtIpAddress.setAdapter(MainActivity.edtIpAddressAdapter);
MainActivity.edtIpAddress.showDropDown();
}
});
btnConnect = (Button)findViewById(R.id.button_connect);
btnConnect.setOnClickListener(this);
RelativeLayout layout = (RelativeLayout) findViewById(R.id.main_view);
layout.setOnTouchListener(new OnTouchListener()
{
public boolean onTouch(View v, MotionEvent event)
{
InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(getWindow().getCurrentFocus().getWindowToken(), 0);
return true;
}
});
}
public void onClick(View v)
{
Log.e("Test", "onClick");
String ConnectionUrl = edtIpAddress.getText().toString();
if (ConnectionUrl.isEmpty())
return;
if (!edtIpAddressHistory.contains(ConnectionUrl))
edtIpAddressHistory.add(ConnectionUrl);
loadPrefSettings();
Log.e("Test", "Instance of player is " + player);
if (player != null)
{
if (playing)
{
player.Close();
btnConnect.setText("Connect");
playing = false;
}
else
{
MediaPlayerConfig conf = new MediaPlayerConfig();
player.setVisibility(View.INVISIBLE);
conf.setConnectionUrl(ConnectionUrl);
player.Open(conf, this);
btnConnect.setText("Disconnect");
playing = true;
}
}
}
protected void onPause()
{
Log.e("SDL", "onPause()");
super.onPause();
editor = settings.edit();
editor.putString("connectionUrl", edtIpAddress.getText().to
没有合适的资源?快使用搜索试试~ 我知道了~
VXG视频框架下RTSP,RTMP视频流WebView网页播放Demo(Eclipse版)
共38个文件
so:15个
xml:9个
png:4个
5星 · 超过95%的资源 需积分: 26 55 下载量 196 浏览量
2016-07-13
10:36:16
上传
评论
收藏 23.25MB ZIP 举报
温馨提示
VXG视频框架下RTSP,RTMP视频流播放Demo(Eclipse版),用于Android手机摄像头视频流WebView端的直播
资源推荐
资源详情
资源评论
收起资源包目录
MediaPlayerSDKTest_1Webviews.zip (38个子文件)
MediaPlayerSDKTest_1Webviews
.project 864B
Application.mk 132B
project.properties 361B
lint.xml 53B
proguard.cfg 1KB
src
veg
rtspplr
sdk
rtsptestplr
MainActivity.java 9KB
AndroidManifest.xml 1KB
res
raw
drawable-ldpi
ic_launcher.png 1KB
xml
drawable-hdpi
ic_launcher.png 3KB
menu
player.xml 263B
drawable-mdpi
ic_launcher.png 2KB
layout
history_item.xml 269B
main.xml 3KB
values-sw600dp
dimens.xml 203B
drawable-xhdpi
ic_launcher.png 3KB
values
strings.xml 378B
dimens.xml 220B
values-sw720dp-land
dimens.xml 277B
layout-port
layout-land
.settings
org.eclipse.jdt.core.prefs 177B
assets
libs
armeabi-v7a
libyuv_shared-armeabi-v7a-noneon.so 70KB
librtstm-armeabi-v7a.so 77KB
libyuv_shared-armeabi-v7a.so 98KB
libSDL2-armeabi-v7a.so 459KB
librtspplr-armeabi-v7a.so 10.29MB
librtspplr-armeabi-v7a-noneon.so 10.33MB
libSDL2-armeabi-v7a-noneon.so 463KB
org.apache.http.legacy.jar 296KB
android-support-v4.jar 543KB
x86
librtspplr-x86.so 12.22MB
librtstm-x86.so 125KB
libyuv_shared-x86.so 314KB
libSDL2-x86.so 903KB
armeabi
libyuv_shared-armeabi.so 74KB
librtspplr-armeabi.so 11.21MB
librtstm-armeabi.so 85KB
libSDL2-armeabi.so 567KB
mediaplayersdk.jar 79KB
.classpath 475B
共 38 条
- 1
资源评论
- 小学生nercita2019-03-07这个播放需要公网,我的需求是在局域网中播放摄像头视频流,不过还是好评吧
阿秋SAMA
- 粉丝: 2
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功