使用Android自带的Mediaplayer类进行播放器的开发的话是自动解码的,但是只支持.3gp,.mp4,.mp3格式文件的解码,其他类型的文件的解码是不支持的,需要自己编写解码的程序。
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站制作、网站设计、茂名网络推广、微信小程序开发、茂名网络营销、茂名企业策划、茂名品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供茂名建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
可以用webView,加载HTML,通过video来播放。
一、需要在AndroidManifest.xml文件中声明需要使用HardwareAccelerate, 可以细化到Activity级别,如果不需要的View可以声明不要用加速,但是需要在代码中做
具体如下:
1如果要声明整个应用都要加速: application ... android:hardwareAccelerated ="true"
2.如果要在Activity中声明,则:
activity ... android:hardwareAccelerated="true"
Window, getWindow.setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
3.如果application或者activity都申明了要硬件加速,但是为了某些原因(比如省电?),一些View不需要硬件加速的话, view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
二、 需要在AndroidManifest.xml文件中用上use-sdk/use-sdk标签,而且如果是空的还不行,必须写上targetSDK或者minSDK,但是我试验过,不管写版本是多少都没有关系。理论上说,Android应该是从3.0( API Level 11)开始可以对2D渲染加速,但是我把targetSDK设置为5都可以使用的,但是这个标签不写还不行。
一般来说,上面的操作做了,就可以使用video标签播放视屏了,如果要支持全屏,还需要做一点操作: 给webview一个WebChromeClient对象,这个WebChromeClient对象需要实现onShowCustomView和onHideCustomView方法
package com.video.rtsp;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.VideoView;
public class rtspActivity extends Activity {
/** Called when the activity is first created. */
Button playButton ;
VideoView videoView ;
EditText rtspUrl ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rtspUrl = (EditText)this.findViewById(R.id.url);
playButton = (Button)this.findViewById(R.id.start_play);
playButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
PlayRtspStream(rtspUrl.getEditableText().toString());
}
});
videoView = (VideoView)this.findViewById(R.id.rtsp_player);
}
//play rtsp stream
private void PlayRtspStream(String rtspUrl){
videoView.setVideoURI(Uri.parse(rtspUrl));
videoView.requestFocus();
videoView.start();
}
}
是做开发吗,
一种情况是硬件采用的硬件解码,硬件不支持
另外一种情况是软件解码,软件没写好,不过H264软解估计够呛
目前一般都应该支持才对,最大可能是软件没有写好
Android 中的VideoView支持MP4格式的视频。通过VideoView播放视频的步骤:
1、在界面布局文件中定义VideoView组件,或在程序中创建VideoView组件
2、调用VideoView的如下两个方法来加载指定的视频,setVidePath(String path):加载path文件代表的视频;setVideoURI(Uri uri):加载uri所对应的视频。
3、调用VideoView的start()、stop()、psuse()方法来控制视频的播放。
VideoView通过与MediaController类结合使用,开发者可以不用自己控制播放与暂停。
编译环境是:
virtualbox下的ubuntu
jdk-8u112-linux-x64 .tar.gz
android-ndk-r13-linux-x86_64.zip
android-sdk_r24.4.1-linux.tgz
配置好这些后安装: install homebrew, git, yasm
搭建好环境后就可以编译了,开始我编译出了0.8.4版本,发现播放不了rtsp,播放就是黑屏,后来发现有人说新版本有这个问题,退回到旧版本就没有问题了,于是我使用了K0.7.6