Skip to content

Latest commit

 

History

History
140 lines (114 loc) · 4.31 KB

README.English.md

File metadata and controls

140 lines (114 loc) · 4.31 KB

English | 简体中文

ArtPlayer

GitHub top language Hex.pm API GitHub release (latest by date)

Introduction

This is a flexible video player. MediaPlayer is completely separate from VideoView and can be replaced with other player kernels such as ExoPlayer and ijkPlayer. Developers can fully customize the player view, which we call the control panel. In addition, developers can use MediaPlayerManager to control playback behaviours, such as full-screen mode, small screen mode, and smart matching modes in RecyclerView.

Full Wiki of ArtPlayer

Features

  • Fullscreen,TinyWindow play
  • Support for playing in RecyclerView
  • Custom UI
  • Global playback in APP
  • Mute
  • Loop Playback
  • Gesture manipulation (small window: single finger drag, double finger zoom; full screen: volume, brightness, fast forward)
  • ijkPlayer support
  • ExoPlayer support
  • Gravity sensor support
  • Raw/Assets, and local playback support

Getting started

basic dependency

implementation 'org.salient.artvideoplayer:artplayer-core:1.1.0'

using ExoPlayer

implementation "org.salient.artvideoplayer:artplayer-exo:1.1.0"

using IjkPlayer

implementation 'org.salient.artvideoplayer:artplayer-ijk:1.1.0'
implementation "org.salient.artvideoplayer:artplayer-armv7a:1.1.0"

support different cpu architecture

implementation "org.salient.artvideoplayer:artplayer-armv5:1.1.0"
implementation "org.salient.artvideoplayer:artplayer-x86:1.1.0"
//required minSdk version >= 21
implementation "org.salient.artvideoplayer:artplayer-arm64:1.1.0"
implementation "org.salient.artvideoplayer:artplayer-x86_64:1.1.0"

使用方法

kotlin

import org.salient.artplayer.VideoView

val videoView = VideoView(context)
videoView.mediaPlayer = SystemMediaPlayer().apply{
    setDataSource(context, Uri.parse("http://vfx.mtime.cn/Video/2018/07/06/mp4/180706094003288023.mp4"))
}
videoView.prepare()

xml

<org.salient.artplayer.VideoView
	android:id="@+id/video_view"
	android:layout_width="match_parent"
	android:layout_height="200dp"/>

AndroidManifest.xml

<activity
    android:name=".YourActivity"
    android:configChanges="orientation|screenSize" /> <!-- required -->

Activity

// block the backpress event of the fullscreen playback
override fun onBackPressed() {
    if (MediaPlayerManager.blockBackPress(this)) {
        return
    }
    super.onBackPressed()
}

setup cover

//If using the ControlPanel,we can get the ImageView of the cover by `findViewById()` method
//of the ControlPanel which extends FrameLayout:
Glide.with(context)
       .load("http://img5.mtime.cn/mg/2018/07/06/093947.51483272.jpg")
       .into(videoView.cover);

Support

My Build Environment

  • Java 1.8
  • Android Studio 3.6.0
  • Gradle 5.6.4
  • IjkPlayer 0.8.8
  • ExoPlayer 2.11.3

Authors

Contact

License

   Copyright 2018 maiwenchang

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.