當前位置:首頁 » 安卓系統 » android視頻播放實現的

android視頻播放實現的

發布時間: 2022-05-10 12:51:24

A. android studio視頻播放器都用需要什麼知識

Android提供了常見的視頻編碼,解碼機制,使用Android自帶的MediaPlayer,MediaController等類可以很方便的實現視頻播放的功能。支持的視頻格式有MP4和3GP等。這些多媒體數據可以來自於Android應用的資源文件,也可以來自於外部存儲器上的文件,甚至可以是來自於網路上的文件流。
MediaController+VideoView實現方式
這種方式是最簡單的實現方式。VideoView繼承了SurfaceView同時實現了MediaPlayerControl介面,MediaController則是安卓封裝的輔助控制器,帶有暫停,播放,停止,進度條等控制項。通過VideoView+MediaController可以很輕松的實現視頻播放、停止、快進、快退等功能。

B. 怎樣實現自己寫的Android視屏播放器播放rmvb格式的視頻

你好,必須移植ffmepg或openmax庫用於軟解碼。就是說需要修改Android多媒體框架,一般播放器只是使用videoview類或mediaplay和surfaceview類實現,這中實現和解碼無關。

C. 安卓開發怎麼點擊按鈕就播放視頻videoview

Android使用VideoView實現VideoPlayer 在Android系統中,是通過MediaPalyer類播放媒體文件的(包括視頻和音頻)。雖然這個類已經比較簡單了,但是還需要控制各種狀態,對於視頻還需要設置輸出窗口,還是需要仔細研究的。為了避免這些麻煩事兒,Android框架提供了VideoView類來封MediaPalyer,這個VideoView類非常好用。Android自帶的程序Gallery也是用VideoView實現的。 通過VideoView播放視頻的步驟: 1、在界面布局文件中定義VideoView組件,或在程序中創建VideoView組件 2、調用VideoView的如下兩個方法來載入指定的視頻 setVidePath(String path):載入path文件代表的視頻 setVideoURI(Uri uri):載入uri所對應的視頻 3、調用VideoView的start()、stop()、psuse()方法來控制視頻的播放 VideoView通過與MediaController類結合使用,開發者可以不用自己控制播放與暫停 簡單實例: activity_main/apk/res/android" xmlns:tools="schemas/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <VideoView android:id="@+id/video1" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout> Activity 控制代碼: package com.Uri; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.widget.MediaController; import android.widget.VideoView; public class MainActivity extends Activity { private VideoView video1; MediaController mediaco; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); video1=(VideoView)findViewById(R.id.video1); mediaco=new MediaController(this); File file=new File("/mnt/sdcard/通話錄音/1.mp4"); if(file.exists()){ //VideoView與MediaController進行關聯 video1.setVideoPath(file.getAbsolutePath()); video1.setMediaController(mediaco); mediaco.setMediaPlayer(video1); //讓VideiView獲取焦點 video1.requestFocus(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } }

D. android 實現播放網路視頻

沒有調start(),vv.setVideoURI(uri);後要調用vv.start(),才可以播放,這裡面有好幾個介面,pause,resunme,stop你看下api,建議看下Mediaplayer播放的狀態機,對你理解多媒體播放有好處。

E. android 如何實現圖片視頻混合播放啊

直接上代碼:

布局文件就是兩個全屏的videoview和imageview重疊

<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:id="@+id/pictureView"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>

<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>


</LinearLayout>

java部分:

/*
視頻圖片混合展示demo
*/
packagecom.example.administrator.hunbo;

importandroid.content.Context;
importandroid.media.MediaPlayer;
importandroid.net.Uri;
importandroid.os.Handler;
importandroid.os.storage.StorageManager;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.ImageView;
importandroid.widget.Toast;
importandroid.widget.VideoView;
importjava.io.File;
importjava.lang.reflect.InvocationTargetException;
importjava.lang.reflect.Method;
importjava.util.ArrayList;

{

privateVideoViewvideoView;
privateImageViewpictureView;
booleanisPlaying=false;
privateArrayListarrayList=newArrayList<String>();

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportActionBar().hide();//隱藏actionBar
//初始化控制項
videoView=findViewById(R.id.videoView);
pictureView=findViewById(R.id.pictureView);
//最開始兩個view都是隱藏的
videoView.setVisibility(View.GONE);
pictureView.setVisibility(View.GONE);
//檢測SD卡是否存在
String[]result=null;
StorageManagerstorageManager=(StorageManager)getSystemService(Context.STORAGE_SERVICE);
try{
Methodmethod=StorageManager.class.getMethod("getVolumePaths");
method.setAccessible(true);
try{
result=(String[])method.invoke(storageManager);
}catch(InvocationTargetExceptione){
e.printStackTrace();
}
if(result.length>1){
//Toast.makeText(this,"檢測到U盤",Toast.LENGTH_SHORT).show();
AllFilesPath("/mnt/usb/");
playList();
}else{
Toast.makeText(this,"未檢測到U盤,請在開機前插入U盤,或者重新啟動此應用",Toast.LENGTH_SHORT).show();
Handlerhandler=newHandler();
handler.postDelayed(newRunnable(){
@Override
publicvoidrun(){
finish();
}
},2500);
}
}catch(Exceptione){
e.printStackTrace();
}
}
//獲取所有圖片視頻的絕對路徑到arraylist
privateArrayListAllFilesPath(Stringpath){
Filefile=newFile(path);
File[]files=file.listFiles();
for(Filef:files){
if(f.getName().endsWith("jpg")||f.getName().endsWith("jpeg")||f.getName().endsWith("mp4")
||f.getName().endsWith("avi")||f.getName().endsWith("mkv")||f.getName().endsWith("rmvb")
||f.getName().endsWith("flv")){
System.out.println("------------獲取到了一個可用路徑:"+f.getAbsolutePath());
arrayList.add(f.getAbsolutePath());//添加到arralist
}elseif(f.isDirectory()){
AllFilesPath(f.getAbsolutePath());
}
}
returnarrayList;
}
//依次混合播放arralist里的圖片或視頻

publicintlistNum;
privatevoidplayList(){
if(listNum>=arrayList.size()){
finish();
//listNum=0;
}else{
System.out.println("---------------------------收入路徑---------------------------");
System.out.println("isplaying="+isPlaying);
finalFilef=newFile(arrayList.get(listNum).toString());
if(f.getName().endsWith("jpg")||f.getName().endsWith("jpeg")||f.getName().endsWith("png")){
System.out.println("---------------------------添加了一張圖片:"+f.getAbsolutePath());
pictureView.setVisibility(View.VISIBLE);
pictureView.setImageURI(Uri.fromFile(f));
Handlerhandler=newHandler();
handler.postDelayed(newRunnable(){
@Override
publicvoidrun(){
System.out.println("---------------------------播完了一張位於"+f.getAbsolutePath()+"的圖片》》》》》》》》》》》》》》》》》");
pictureView.setVisibility(View.GONE);
listNum++;
playList();
}
},2000);//2秒後結束當前圖片
}elseif(f.getName().endsWith("mp4")||f.getName().endsWith("avi")||f.getName().endsWith("mkv")
||f.getName().endsWith("rmvb")||f.getName().endsWith("flv")){
System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~添加了一個視頻"+f.getAbsolutePath());
videoView.setVideoPath(f.getAbsolutePath());
videoView.setVisibility(View.VISIBLE);//播放之前顯示videoView
videoView.start();
videoView.setOnCompletionListener(newMediaPlayer.OnCompletionListener(){
@Override
publicvoidonCompletion(MediaPlayermp){
System.out.println("---------------------------播完了一個位於"+f.getAbsolutePath()+"的視頻《《《《《《《《《《《《《《《《《《");
videoView.setVisibility(View.GONE);//視頻播放完畢後隱藏videoView
listNum++;
playList();
}
});
}
}
}

F. 在安卓手機上看網頁的時候如何實現視頻嵌入頁面中播放不用flash的話

可以使用android的WebView來載入一個html5 通過video標簽來實現視頻的播放。

以下為實現步驟:
1.需要在AndroidManifest.xml文件中聲明需要使用HardwareAccelerate, 可以細化到Activity級別,如果不需要的View可以聲明不要用加速,但是需要在代碼中做,
具體如下:
a.如果要聲明整個應用都要加速:< application ... android:hardwareAccelerated ="true">
b. 如果要在Activity中聲明,則:
<activity ... android:hardwareAccelerated="true" >
Window, getWindow.setFlags( WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
c. 如果application或者activity都申明了要硬體加速,但是為了某些原因(比如省電?),一些View不需要硬體加速的話, view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

2.需要在AndroidManifest.xml文件中用上<use-sdk></use-sdk>標簽,而且如果是空的還不行,必須寫上targetSDK或者minSDK,但是我試驗過,不管寫版本是多少都沒有關系。。。理論上說,Android應該是從3.0( API Level 11)開始可以對2D渲染加速,但是我把targetSDK設置為5都可以使用的,但是這個標簽不寫還不行。

一般來說,上面的操作做了,就可以使用video標簽播放視屏了,如果要支持全屏,還需要做一點操作: 給webview一個WebChromeClient對象,這個WebChromeClient對象需要實現onShowCustomView和onHideCustomView方法

G. android如何實現視頻的在線播放

vitamio
能播放絕大部分格式的視頻,但是這個有點大,裡面的so文件比較多,官方文檔上說有瘦身的方法,我試過但是沒成功,就一個用了vitamio
的小demo,打完包都10m了。在線視頻的話如果在電腦瀏覽器上能直接播放的話,用這個都可以播的,也有緩沖。我們項目也有在線視頻播放,原本也是准備用vitamio
的,但是太大了,打完包apk增加了10m,然後我就換成了universalvideoview
了,這個也可以在線播放,有緩沖效果,主要是打包後apk不大。如果你播放在線視頻功能要求高,而且不在乎apk大小的話可以使用vitamio
,如果僅想實現在線播放的話建議universalvideoview
就夠了!

H. 安卓端需要實現實時視頻,該怎麼做

安卓端需要實現實時視頻,最便捷的方法是和第三方平台合作,接入他們的SDK,即構科技的音視頻解決方案就還不錯,我之前接入過,他們的sdk靈活性比較強,多終端適配,對比其他同行,優勢是支持32路實時音視頻,現在好像可以支持更多了,這個聽起來好像就那樣,但實現難度其實很高!另外,即構的視頻效果和音質都是有保障的。

I. 如何實現android播放視頻的功能

在Android中,有三種方式來實現視頻的播放:

1、使用其自帶的播放器。指定Action為ACTION_VIEW,Data為Uri,Type為其MIME類型。

2、使用VideoView來播放。在布局文件中使用VideoView結合MediaController來實現對其控制。

3、使用MediaPlayer類和SurfaceView來實現,這種方式很靈活。

J. 怎樣簡單實現Android視頻播放器倍速,清晰

除了BSplayer播放器、KMplayer播放器,還有Astro Player播放器、Vplayer播放器、DicePlayer播放器也可以變速播放!但是只有KMplayer才支持最高4倍速度播放,其他的最高都只是2倍。

熱點內容
hp存儲6350 發布:2025-05-15 05:40:41 瀏覽:233
怎麼更改電腦默認緩存位置 發布:2025-05-15 05:39:01 瀏覽:876
安卓qq公孫離在哪個戰區戰力最低 發布:2025-05-15 05:38:58 瀏覽:493
androidffmpeg壓縮 發布:2025-05-15 05:37:02 瀏覽:288
ftp簡稱是 發布:2025-05-15 05:37:02 瀏覽:120
光遇發光耳機怎麼設置安卓 發布:2025-05-15 05:32:03 瀏覽:113
台電安卓平板系統太低怎麼辦 發布:2025-05-15 05:20:00 瀏覽:508
安裝了zlib編譯報錯 發布:2025-05-15 05:19:56 瀏覽:168
二分演算法無序 發布:2025-05-15 05:18:22 瀏覽:30
網易我的世界伺服器組件怎麼安裝 發布:2025-05-15 05:16:58 瀏覽:313