【实例简介】
本代码用b站开源的ijkplayer库修改后,实现对rtsp视频流的播放。之前用VLC,踩了太多坑,VLC的文档介绍不是太清楚,需自己用NDK编译,到最后一直没解决长时间运行就卡死问题。后来尝试ijkplayer库,完美解决对rtsp视频流的播放,同时也支持http、mp4、rtmp视频流
【实例截图】
【核心代码】
4644949ijkplayer-rtsp
└── ijkplayer-rtsp
├── app
│ ├── app.iml
│ ├── build.gradle
│ ├── proguard-rules.pro
│ └── src
│ ├── androidTest
│ │ └── java
│ │ └── com
│ │ └── nq_ijkplayer
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── com
│ │ │ └── nq_ijkplayer
│ │ │ ├── IjkMediaPlayerUtil.java
│ │ │ ├── MainActivity.java
│ │ │ ├── PlayerIJKUtils.java
│ │ │ ├── VideoPlayerIJK.java
│ │ │ └── VideoPlayerListener.java
│ │ └── res
│ │ ├── drawable
│ │ │ └── white_circle.xml
│ │ ├── layout
│ │ │ ├── activity_main2.xml
│ │ │ ├── activity_main.xml
│ │ │ └── seekbarplay_style.xml
│ │ ├── mipmap-hdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ │ ├── ic_launcher.png
│ │ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── colors.xml
│ │ ├── strings.xml
│ │ └── styles.xml
│ └── test
│ └── java
│ └── com
│ └── nq_ijkplayer
│ └── ExampleUnitTest.java
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── local.properties
├── nq-ijkplayer
│ ├── build.gradle
│ ├── gradle
│ │ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradlew
│ ├── gradlew.bat
│ ├── local.properties
│ ├── nq-ijkplayer.iml
│ ├── proguard-rules.pro
│ └── src
│ ├── androidTest
│ │ └── java
│ │ └── tv
│ │ └── danmaku
│ │ └── ijk
│ │ └── media
│ │ └── ExampleInstrumentedTest.java
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ │ └── tv
│ │ │ └── danmaku
│ │ │ └── ijk
│ │ │ └── media
│ │ │ ├── example
│ │ │ │ ├── aa.java
│ │ │ │ └── media
│ │ │ │ ├── AndroidMediaController.java
│ │ │ │ ├── FileMediaDataSource.java
│ │ │ │ ├── IjkVideoView.java
│ │ │ │ ├── IMediaController.java
│ │ │ │ ├── IRenderView.java
│ │ │ │ ├── MeasureHelper.java
│ │ │ │ ├── MediaPlayerCompat.java
│ │ │ │ ├── SurfaceRenderView.java
│ │ │ │ └── TextureRenderView.java
│ │ │ └── player
│ │ │ ├── AbstractMediaPlayer.java
│ │ │ ├── AndroidMediaPlayer.java
│ │ │ ├── annotations
│ │ │ │ ├── AccessedByNative.java
│ │ │ │ └── CalledByNative.java
│ │ │ ├── exceptions
│ │ │ │ └── IjkMediaException.java
│ │ │ ├── ffmpeg
│ │ │ │ └── FFmpegApi.java
│ │ │ ├── IjkLibLoader.java
│ │ │ ├── IjkMediaCodecInfo.java
│ │ │ ├── IjkMediaMeta.java
│ │ │ ├── IjkMediaPlayer.java
│ │ │ ├── IjkTimedText.java
│ │ │ ├── IMediaPlayer.java
│ │ │ ├── ISurfaceTextureHolder.java
│ │ │ ├── ISurfaceTextureHost.java
│ │ │ ├── MediaInfo.java
│ │ │ ├── MediaPlayerProxy.java
│ │ │ ├── misc
│ │ │ │ ├── AndroidMediaFormat.java
│ │ │ │ ├── AndroidTrackInfo.java
│ │ │ │ ├── IAndroidIO.java
│ │ │ │ ├── IjkMediaFormat.java
│ │ │ │ ├── IjkTrackInfo.java
│ │ │ │ ├── IMediaDataSource.java
│ │ │ │ ├── IMediaFormat.java
│ │ │ │ └── ITrackInfo.java
│ │ │ ├── pragma
│ │ │ │ ├── DebugLog.java
│ │ │ │ └── Pragma.java
│ │ │ └── TextureMediaPlayer.java
│ │ ├── jniLibs
│ │ │ └── armeabi-v7a
│ │ │ ├── libijkffmpeg.so
│ │ │ ├── libijkplayer.so
│ │ │ └── libijksdl.so
│ │ └── res
│ │ └── values
│ │ └── strings.xml
│ └── test
│ └── java
│ └── tv
│ └── danmaku
│ └── ijk
│ └── media
│ └── ExampleUnitTest.java
├── nq_ijkplayer-master-master.iml
├── README.md
└── settings.gradle
60 directories, 90 files