使用Android自帶的Mediaplayer類進(jìn)行播放器的開(kāi)發(fā)的話是自動(dòng)解碼的,但是只支持.3gp,.mp4,.mp3格式文件的解碼,其他類型的文件的解碼是不支持的,需要自己編寫(xiě)解碼的程序。
創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、茂名網(wǎng)絡(luò)推廣、微信小程序開(kāi)發(fā)、茂名網(wǎng)絡(luò)營(yíng)銷、茂名企業(yè)策劃、茂名品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供茂名建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:jinyejixie.com
可以用webView,加載HTML,通過(guò)video來(lái)播放。
一、需要在AndroidManifest.xml文件中聲明需要使用HardwareAccelerate, 可以細(xì)化到Activity級(jí)別,如果不需要的View可以聲明不要用加速,但是需要在代碼中做
具體如下:
1如果要聲明整個(gè)應(yīng)用都要加速: 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標(biāo)簽,而且如果是空的還不行,必須寫(xiě)上targetSDK或者minSDK,但是我試驗(yàn)過(guò),不管寫(xiě)版本是多少都沒(méi)有關(guān)系。理論上說(shuō),Android應(yīng)該是從3.0( API Level 11)開(kāi)始可以對(duì)2D渲染加速,但是我把targetSDK設(shè)置為5都可以使用的,但是這個(gè)標(biāo)簽不寫(xiě)還不行。
一般來(lái)說(shuō),上面的操作做了,就可以使用video標(biāo)簽播放視屏了,如果要支持全屏,還需要做一點(diǎn)操作: 給webview一個(gè)WebChromeClient對(duì)象,這個(gè)WebChromeClient對(duì)象需要實(shí)現(xiàn)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();
}
}
是做開(kāi)發(fā)嗎,
一種情況是硬件采用的硬件解碼,硬件不支持
另外一種情況是軟件解碼,軟件沒(méi)寫(xiě)好,不過(guò)H264軟解估計(jì)夠嗆
目前一般都應(yīng)該支持才對(duì),最大可能是軟件沒(méi)有寫(xiě)好
Android 中的VideoView支持MP4格式的視頻。通過(guò)VideoView播放視頻的步驟:
1、在界面布局文件中定義VideoView組件,或在程序中創(chuàng)建VideoView組件
2、調(diào)用VideoView的如下兩個(gè)方法來(lái)加載指定的視頻,setVidePath(String path):加載path文件代表的視頻;setVideoURI(Uri uri):加載uri所對(duì)應(yīng)的視頻。
3、調(diào)用VideoView的start()、stop()、psuse()方法來(lái)控制視頻的播放。
VideoView通過(guò)與MediaController類結(jié)合使用,開(kāi)發(fā)者可以不用自己控制播放與暫停。
編譯環(huán)境是:
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
搭建好環(huán)境后就可以編譯了,開(kāi)始我編譯出了0.8.4版本,發(fā)現(xiàn)播放不了rtsp,播放就是黑屏,后來(lái)發(fā)現(xiàn)有人說(shuō)新版本有這個(gè)問(wèn)題,退回到舊版本就沒(méi)有問(wèn)題了,于是我使用了K0.7.6
網(wǎng)站標(biāo)題:包含rtspandroid的詞條
轉(zhuǎn)載來(lái)于:http://jinyejixie.com/article10/dssssgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、企業(yè)建站、網(wǎng)站設(shè)計(jì)、網(wǎng)站收錄、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)