日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android播放器自定义,android surfaceView+mediaPlayer 自定义视频播放器

發布時間:2025/3/20 Android 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android播放器自定义,android surfaceView+mediaPlayer 自定义视频播放器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

你可以參考我的寫法,注意點就是你自定義的MyCallBack()里面要回調,也就是我寫的SurfaceCallBack()里面的SurfaceCreated()函數要實現你寫的setOnPreparedListener()的監聽

public class Video implements MediaPlayer.OnCompletionListener,MediaPlayer.OnPreparedListener,MediaPlayer.OnErrorListener,MediaPlayer.OnBufferingUpdateListener,VideoClickListener{private?Context?context;

private?SurfaceView?surfaceView;

private?SurfaceHolder?surfaceHolder;

private?MediaPlayer?mediaPlayer;

private?ProgressBar?progressBar;

private?SeekBar?seekBar;

private?VerticalSeekBar?seekBar_sound;

private?ImageView?pause,full_screen,silent;

private?TextView?textView;

private?boolean?seekBarAutoFlag;

private?String?videoTimeString;

//判斷值

private?boolean?isFullScreen=false;??//是否全屏

private?boolean?isPause=false;?//是否暫停

private?boolean?isSilent=false;//是否靜音

private?int?screenWidth;??//獲取到設備的寬高

private?int?screenHeight;

@Override

public?MediaPlayer?getMediaPlayer()?{

return?mediaPlayer;

}

@Override

public?SurfaceView?getSurfaveView()?{

return?surfaceView;

}

@Override

public?Thread?getThread()?{

return?thread;

}

public?Video(Context?context,?MediaPlayer?mediaPlayereekBar,?SurfaceView?surfaceView,?ProgressBar?progressBar,?SeekBar?seekBar,?TextView?textView,?ImageView?pause,?ImageView?full_screen)?{

this.context?=?context;

this.mediaPlayer=mediaPlayereekBar;

this.surfaceView=surfaceView;

this.progressBar=progressBar;

this.seekBar=seekBar;

this.textView=textView;

this.pause=pause;

this.full_screen=full_screen;

init();

}

/**

*?初始化控件

*/

public?void?init(){

//?設置surfaceHolder

surfaceHolder?=?surfaceView.getHolder();

//?設置Holder類型,該類型表示surfaceView自己不管理緩存區,雖然提示過時,但最好還是要設置

surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

//?設置surface回調

surfaceHolder.addCallback(new?SurfaceCallback());

//???mAudioManager=?(AudioManager)?context.getSystemService(AUDIO_SERVICE);

//獲取屏幕的寬高

WindowManager?wm?=?(WindowManager)?context

.getSystemService(Context.WINDOW_SERVICE);

screenWidth?=?wm.getDefaultDisplay().getWidth();

screenHeight?=?wm.getDefaultDisplay().getHeight();

}

/**

*?回調?對SurfaceView的生命周期的實現。

*/

private?class?SurfaceCallback?implements?SurfaceHolder.Callback?{

public?void?surfaceChanged(SurfaceHolder?holder,?int?format,?int?width,?int?height)?{

//?SurfaceView的大小改變

mediaPlayer.setDisplay(surfaceHolder);

}

public?void?surfaceCreated(SurfaceHolder?holder)?{

//?surfaceView被創建

//?設置播放資源

playVideo();

}

public?void?surfaceDestroyed(SurfaceHolder?holder)?{

//?surfaceView銷毀

//?如果MediaPlayer沒被銷毀,則銷毀mediaPlayer

if?(null?!=?mediaPlayer)?{

mediaPlayer.release();

mediaPlayer?=?null;

}

}

}

/**

*?播放視頻

*/

public?void?playVideo()?{

//?初始化MediaPlayer

mediaPlayer?=?new?MediaPlayer();

//?重置mediaPaly,建議在初始滑mediaplay立即調用。

mediaPlayer.reset();

//?設置聲音效果

mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

//?設置播放完成監聽

mediaPlayer.setOnCompletionListener(Video.this);

//?設置媒體加載完成以后回調函數。

mediaPlayer.setOnPreparedListener(this);

//?錯誤監聽回調函數

mediaPlayer.setOnErrorListener(this);

//?設置緩存變化監聽

mediaPlayer.setOnBufferingUpdateListener(this);

File?file?=?new?File(Environment.getExternalStorageDirectory(),?"震撼宇宙10秒倒計時.mp4");

String?a=file.getPath();

Uri?uri?=?Uri

.parse("http://video.eastday.com/a/180320180216447158758.html?qid=01360");

try?{

//?mediaPlayer.reset();

//mediaPlayer.setDataSource(media.this,?uri);

mediaPlayer.setDataSource(a);

//?設置異步加載視頻,包括兩種方式?prepare()同步,prepareAsync()異步

mediaPlayer.prepareAsync();

}?catch?(IOException?e)?{

e.printStackTrace();

}

}

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Android播放器自定义,android surfaceView+mediaPlayer 自定义视频播放器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。