Git Product home page Git Product logo

carguo / gsyvideoplayer Goto Github PK

View Code? Open in Web Editor NEW
19.7K 19.7K 4.2K 325.79 MB

视频播放器(IJKplayer、ExoPlayer、MediaPlayer),HTTPS,支持弹幕,外挂字幕,支持滤镜、水印、gif截图,片头广告、中间广告,多个同时播放,支持基本的拖动,声音、亮度调节,支持边播边缓存,支持视频自带rotation的旋转(90,270之类),重力旋转与手动旋转的同步支持,支持列表播放 ,列表全屏动画,视频加载速度,列表小窗口支持拖动,动画效果,调整比例,多分辨率切换,支持切换播放器,进度条小窗口预览,列表切换详情页面无缝播放,rtsp、concat、mpeg。

Home Page: https://juejin.im/user/582aca2ba22b9d006b59ae68/posts

License: Apache License 2.0

Java 97.87% Shell 2.13%
android exoplayer ffmpeg https ijkplayer player video videocache

gsyvideoplayer's Issues

红米note2,3 报错..

java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.apps.android.news.news-2/base.apk"],nativeLibraryDirectories=[/data/app/com.apps.android.news.news-2/lib/arm64, /vendor/lib64, /system/lib64]]] couldn't find "libijkffmpeg.so"
at java.lang.Runtime.loadLibrary(Runtime.java:366)
at java.lang.System.loadLibrary(System.java:988)
at tv.danmaku.ijk.media.player.IjkMediaPlayer$1.loadLibrary(IjkMediaPlayer.java:163)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.loadLibrariesOnce(IjkMediaPlayer.java:174)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.initPlayer(IjkMediaPlayer.java:215)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.(IjkMediaPlayer.java:211)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.(IjkMediaPlayer.java:202)
at com.shuyu.gsyvideoplayer.GSYVideoManager.(GSYVideoManager.java:204)
at com.shuyu.gsyvideoplayer.GSYVideoManager.instance(GSYVideoManager.java:84)
at com.shuyu.gsyvideoplayer.GSYVideoPlayer.isCurrentMediaListener(GSYVideoPlayer.java:1064)
at com.shuyu.gsyvideoplayer.GSYVideoPlayer.setUp(GSYVideoPlayer.java:227)
at com.apps.android.news.news.ui.widget.MyVideoPlayer.setUp(MyVideoPlayer.java:179)
at com.apps.android.news.news.ui.activity.VideoDetailActivity.setVideo(VideoDetailActivity.java:144)
at com.apps.android.news.news.ui.activity.VideoDetailActivity.onCreate(VideoDetailActivity.java:117)
at android.app.Activity.performCreate(Activity.java:6041)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1109)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2285)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2394)
at android.app.ActivityThread.access$800(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1308)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5276)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:911)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:706)

java.lang.UnsatisfiedLinkError: Cannot load library: find_library[1201]: 163 'libijksdl.so' failed to load previously

4.1 至4.3会出现这个问题
FATAL EXCEPTION: main
java.lang.UnsatisfiedLinkError: Cannot load library: find_library[1201]: 163 'libijksdl.so' failed to load previously
at java.lang.Runtime.loadLibrary(Runtime.java:370)
at java.lang.System.loadLibrary(System.java:535)
at tv.danmaku.ijk.media.player.IjkMediaPlayer$1.loadLibrary(IjkMediaPlayer.java:163)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.loadLibrariesOnce(IjkMediaPlayer.java:175)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.initPlayer(IjkMediaPlayer.java:215)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.(IjkMediaPlayer.java:211)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.(IjkMediaPlayer.java:202)
at com.shuyu.gsyvideoplayer.GSYVideoManager.(GSYVideoManager.java:189)
at com.shuyu.gsyvideoplayer.GSYVideoManager.instance(GSYVideoManager.java:69)
at com.shuyu.gsyvideoplayer.GSYVideoPlayer.isCurrentMediaListener(GSYVideoPlayer.java:1046)
at com.shuyu.gsyvideoplayer.GSYVideoPlayer.setUp(GSYVideoPlayer.java:244)
at com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer.setUp(StandardGSYVideoPlayer.java:146)
at com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer.setUp(StandardGSYVideoPlayer.java:141)
at com.hutchind.cordova.plugins.streamingmedia.PlayActivity.init(PlayActivity.java:75)
at com.hutchind.cordova.plugins.streamingmedia.PlayActivity.onCreate(PlayActivity.java:60)
at android.app.Activity.performCreate(Activity.java:5203)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2078)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2139)
at android.app.ActivityThread.access$700(ActivityThread.java:143)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1241)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4960)

请问,判断全屏的问题或者是拿到当前的videoPlayer对象问题。

我现在在MainActivity中有几个fragment,第一个fragment中一个RecyclerView,这里面的一个列表中有一个视频播放,切换fragment怎么暂停视频播放?
还有在MainActivity的返回事件中怎么判断是不是需要播放器返回?
另外就是第一个fragment按Home按钮到后台,再换到前台,如何做暂停和播放动作?
最后就是ListVideo2Activity中如果换成RecyclerView在小窗口出来的时候回卡一下,没有listView流畅。

fork过来安装缺少这个方法

D:\Administrator\Github\GSYVideoPlayer\gsyVideoPlayer\src\main\java\com\shuyu\gsyvideoplayer\GSYVideoPlayer.java
Error:(1191, 63) 错误: 找不到符号
符号: 方法 getTcpSpeed()
位置: 类 IjkMediaPlayer

一个小问题

在recyclerview中的demo 播放完毕之后点击上锁之后会出现一些问题 作者可以看看demo~

startWindowFullscreen()方法

c9e4e123-cd4b-403a-b770-c884f3be026f
如上图,我重写了startWindowFullscreen,但是全屏时,没有接着横屏的时间点播放。这个怎么搞?

UnsatisfiedLinkError

java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/com.example.gsyvideoplayer-1/lib/x86/libijkffmpeg.so: has text relocations
at java.lang.Runtime.loadLibrary(Runtime.java:372)
at java.lang.System.loadLibrary(System.java:1076)
at tv.danmaku.ijk.media.player.IjkMediaPlayer$1.loadLibrary(IjkMediaPlayer.java:163)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.loadLibrariesOnce(IjkMediaPlayer.java:174)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.initPlayer(IjkMediaPlayer.java:215)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.(IjkMediaPlayer.java:211)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.(IjkMediaPlayer.java:202)
at com.shuyu.gsyvideoplayer.GSYVideoManager.(GSYVideoManager.java:207)
at com.shuyu.gsyvideoplayer.GSYVideoManager.instance(GSYVideoManager.java:87)
at com.shuyu.gsyvideoplayer.GSYVideoPlayer.isCurrentMediaListener(GSYVideoPlayer.java:1068)
at com.shuyu.gsyvideoplayer.GSYVideoPlayer.setUp(GSYVideoPlayer.java:230)
at com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer.setUp(StandardGSYVideoPlayer.java:200)
at com.shuyu.gsyvideoplayer.video.StandardGSYVideoPlayer.setUp(StandardGSYVideoPlayer.java:186)
at com.example.gsyvideoplayer.video.SampleVideo.setUp(SampleVideo.java:120)
at com.example.gsyvideoplayer.PlayActivity.init(PlayActivity.java:74)
at com.example.gsyvideoplayer.PlayActivity.onCreate(PlayActivity.java:53)
at android.app.Activity.performCreate(Activity.java:6237)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
12-23 12:43:44.594 28391-28399/com.example.gsyvideoplayer E/art: No implementation found for void tv.danmaku.ijk.media.player.IjkMediaPlayer.native_finalize() (tried Java_tv_danmaku_ijk_media_player_IjkMediaPlayer_native_1finalize and Java_tv_danmaku_ijk_media_player_IjkMediaPlayer_native_1finalize__)
12-23 12:43:44.595 28391-28399/com.example.gsyvideoplayer E/System: Uncaught exception thrown by finalizer
12-23 12:43:44.595 28391-28399/com.example.gsyvideoplayer E/System: java.lang.UnsatisfiedLinkError: No implementation found for void tv.danmaku.ijk.media.player.IjkMediaPlayer.native_finalize() (tried Java_tv_danmaku_ijk_media_player_IjkMediaPlayer_native_1finalize and Java_tv_danmaku_ijk_media_player_IjkMediaPlayer_native_1finalize__)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.native_finalize(Native Method)
at tv.danmaku.ijk.media.player.IjkMediaPlayer.finalize(IjkMediaPlayer.java:893)
at java.lang.Daemons$FinalizerDaemon.doFinalize(Daemons.java:202)
at java.lang.Daemons$FinalizerDaemon.run(Daemons.java:185)
at java.lang.Thread.run(Thread.java:818)

全屏调整亮度问题

第一个单独的例子中,全屏调整亮度,调整到百分百了,然后松手又复位了,未保存亮度状态。再次向上滑动亮度又是从百分之60左右开始的。

onPlayError()方法

我需要在报错时,取到报错的当前播放时间点。能否可以取到?

土豆解析出来的m3u8地址播放不了。。。

视频地址:http://vr.tudou.com/v2proxy/v2.m3u8?it=249426936&st=3&pw=
苹果端可以直接播放。。求助大神。
LOG:
01-19 16:25:14.030 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_release
01-19 16:25:14.030 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_setVolume
01-19 16:25:14.031 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_setVideoSurface
01-19 16:25:14.035 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_release
01-19 16:25:14.035 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_native_setup
01-19 16:25:14.035 12771-13395/com.rmj.asmr I/IJKMEDIA: av_version_info: ff3.2--ijk0.7.5--20161205--001
01-19 16:25:14.035 12771-13395/com.rmj.asmr I/IJKMEDIA: ijk_version_info: k0.7.5-21-gaffc5fd
01-19 16:25:14.035 12771-13395/com.rmj.asmr D/IJKMEDIA: ffpipeline_create_from_android()
01-19 16:25:14.035 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_set_inject_opaque(0x1008a6)
01-19 16:25:14.035 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_set_inject_opaque()=void
01-19 16:25:14.035 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()
01-19 16:25:14.035 12771-13395/com.rmj.asmr D/IJKMEDIA: ffpipeline_set_mediacodec_select_callback
01-19 16:25:14.035 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()=void
01-19 16:25:14.035 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_setDataSourceAndHeaders
01-19 16:25:14.035 12771-13395/com.rmj.asmr V/IJKMEDIA: setDataSource: path http://vr.tudou.com/v2proxy/v2.m3u8?it=249426936&st=3&pw=
01-19 16:25:14.035 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_set_data_source(url="http://vr.tudou.com/v2proxy/v2.m3u8?it=249426936&st=3&pw=")
01-19 16:25:14.036 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_set_data_source(url="http://vr.tudou.com/v2proxy/v2.m3u8?it=249426936&st=3&pw=")=0
01-19 16:25:14.036 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_setOptionLong
01-19 16:25:14.036 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_setLoopCount
01-19 16:25:14.036 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_setVolume
01-19 16:25:14.036 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_android_set_volume(1.000000, 1.000000)
01-19 16:25:14.036 12771-13395/com.rmj.asmr D/IJKMEDIA: ffpipeline_set_volume
01-19 16:25:14.036 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_android_set_volume(1.000000, 1.000000)=void
01-19 16:25:14.036 12771-13395/com.rmj.asmr W/tv.danmaku.ijk.media.player.IjkMediaPlayer: setScreenOnWhilePlaying(true) is ineffective without a SurfaceHolder
01-19 16:25:14.036 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_prepareAsync
01-19 16:25:14.036 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_prepare_async()
01-19 16:25:14.036 12771-13395/com.rmj.asmr I/IJKMEDIA: ===== versions =====
01-19 16:25:14.036 12771-13395/com.rmj.asmr I/IJKMEDIA: ijkplayer : k0.7.5-21-gaffc5fd
01-19 16:25:14.036 12771-13395/com.rmj.asmr I/IJKMEDIA: FFmpeg : ff3.2--ijk0.7.5--20161205--001
01-19 16:25:14.036 12771-13395/com.rmj.asmr I/IJKMEDIA: libavutil : 55.34.100
01-19 16:25:14.036 12771-13395/com.rmj.asmr I/IJKMEDIA: libavcodec : 57.64.100
01-19 16:25:14.036 12771-13395/com.rmj.asmr I/IJKMEDIA: libavformat : 57.56.100
01-19 16:25:14.036 12771-13395/com.rmj.asmr I/IJKMEDIA: libswscale : 4.2.100
01-19 16:25:14.036 12771-13395/com.rmj.asmr I/IJKMEDIA: libswresample: 2.3.100
01-19 16:25:14.036 12771-13395/com.rmj.asmr I/IJKMEDIA: ===== options =====
01-19 16:25:14.036 12771-13395/com.rmj.asmr I/IJKMEDIA: player-opts : loop = 1
01-19 16:25:14.036 12771-13395/com.rmj.asmr I/IJKMEDIA: format-opts : ijkapplication = 547721374816
01-19 16:25:14.036 12771-13395/com.rmj.asmr I/IJKMEDIA: ===================
01-19 16:25:14.037 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_prepare_async()=0
01-19 16:25:14.037 12771-14191/com.rmj.asmr I/IJKMEDIA: SDL_RunThread: [14191] ff_msg_loop
01-19 16:25:14.037 12771-14191/com.rmj.asmr D/IJKMEDIA: message_loop
01-19 16:25:14.038 12771-14191/com.rmj.asmr D/IJKMEDIA: FFP_MSG_FLUSH:
01-19 16:25:14.038 12771-14192/com.rmj.asmr I/IJKMEDIA: SDL_RunThread: [14192] ff_vout
01-19 16:25:14.038 12771-14193/com.rmj.asmr I/IJKMEDIA: SDL_RunThread: [14193] ff_read
01-19 16:25:14.040 12771-14193/com.rmj.asmr I/tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 1
01-19 16:25:14.043 12771-13395/com.rmj.asmr W/tv.danmaku.ijk.media.player.IjkMediaPlayer: setScreenOnWhilePlaying(true) is ineffective for Surface
01-19 16:25:14.043 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_setVideoSurface
01-19 16:25:14.043 12771-14193/com.rmj.asmr I/tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 131073
01-19 16:25:14.043 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_set_android_surface(surface=0x7f82dfdbb8)
01-19 16:25:14.043 12771-13395/com.rmj.asmr D/IJKMEDIA: ffpipeline_set_surface()
01-19 16:25:14.043 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_set_android_surface(surface=0x7f82dfdbb8)=void
01-19 16:25:14.061 12771-14193/com.rmj.asmr I/tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 131074
01-19 16:25:14.074 12771-14193/com.rmj.asmr W/IJKMEDIA: HTTP error 403 Forbidden
01-19 16:25:14.074 12771-14193/com.rmj.asmr I/tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 2
01-19 16:25:14.074 12771-14193/com.rmj.asmr E/IJKMEDIA: http://vr.tudou.com/v2proxy/v2.m3u8?it=249426936&st=3&pw=: Server returned 403 Forbidden (access denied)
01-19 16:25:14.074 12771-14193/com.rmj.asmr I/IJKMEDIA: SDL_JNI_DetachThreadEnv: [14193]
01-19 16:25:14.074 12771-14191/com.rmj.asmr D/IJKMEDIA: FFP_MSG_ERROR: 0
01-19 16:25:14.075 12771-13395/com.rmj.asmr E/tv.danmaku.ijk.media.player.IjkMediaPlayer: Error (-10000,0)
01-19 16:25:14.075 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_release
01-19 16:25:14.075 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_set_android_surface(surface=0x0)
01-19 16:25:14.075 12771-13395/com.rmj.asmr D/IJKMEDIA: ffpipeline_set_surface()
01-19 16:25:14.075 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_set_android_surface(surface=0x0)=void
01-19 16:25:14.075 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_shutdown_l()
01-19 16:25:14.075 12771-14191/com.rmj.asmr D/IJKMEDIA: message_loop exit
01-19 16:25:14.075 12771-14191/com.rmj.asmr I/IJKMEDIA: SDL_JNI_DetachThreadEnv: [14191]
01-19 16:25:14.079 12771-14192/com.rmj.asmr I/IJKMEDIA: SDL_JNI_DetachThreadEnv: [14192]
01-19 16:25:14.079 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_shutdown_l()=void
01-19 16:25:14.079 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_dec_ref(): ref=0
01-19 16:25:14.079 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_shutdown_l()
01-19 16:25:14.079 12771-13395/com.rmj.asmr D/IJKMEDIA: ijkmp_shutdown_l()=void
01-19 16:25:14.079 12771-13395/com.rmj.asmr D/IJKMEDIA: IjkMediaPlayer_setVolume

播放器偶然出现IllegalStateException异常

at tv.danmaku.ijk.media.player.IjkMediaPlayer._pause(Native Method)
W/System.err( 3111): at tv.danmaku.ijk.media.player.IjkMediaPlayer.pause(IjkMediaPlayer.java:514)
W/System.err( 3111): at com.shuyu.gsyvideoplayer.GSYVideoPlayer.onVideoPause(GSYVideoPlayer.java:432)

HttpProxyCacheServer error com.danikula.videocache.ProxyCacheException

播放这个链接

http://120.25.226.186:32812/resources/videos/minion_01.mp4
报了这个异常。

HttpProxyCacheServer error com.danikula.videocache.ProxyCacheException: Error closing socket output stream at com.danikula.videocache.HttpProxyCacheServer.closeSocketOutput(HttpProxyCacheServer.java:294) at com.danikula.videocache.HttpProxyCacheServer.releaseSocket(HttpProxyCacheServer.java:270) at com.danikula.videocache.HttpProxyCacheServer.processSocket(HttpProxyCacheServer.java:242) at com.danikula.videocache.HttpProxyCacheServer.access$200(HttpProxyCacheServer.java:52) at com.danikula.videocache.HttpProxyCacheServer$SocketProcessorRunnable.run(HttpProxyCacheServer.java:337) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:818) Caused by: java.net.SocketException: shutdown failed: ENOTCONN (Transport endpoint is not connected) at java.net.PlainSocketImpl.shutdownOutput(PlainSocketImpl.java:377) at java.net.Socket.shutdownOutput(Socket.java:652) at com.danikula.videocache.HttpProxyCacheServer.closeSocketOutput(HttpProxyCacheServer.java:291) at com.danikula.videocache.HttpProxyCacheServer.releaseSocket(HttpProxyCacheServer.java:270)  at com.danikula.videocache.HttpProxyCacheServer.processSocket(HttpProxyCacheServer.java:242)  at com.danikula.videocache.HttpProxyCacheServer.access$200(HttpProxyCacheServer.java:52)  at com.danikula.videocache.HttpProxyCacheServer$SocketProcessorRunnable.run(HttpProxyCacheServer.java:337)  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)  at java.util.concurrent.FutureTask.run(FutureTask.java:237)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)  at java.lang.Thread.run(Thread.java:818)  Caused by: android.system.ErrnoException: shutdown failed: ENOTCONN (Transport endpoint is not connected) at libcore.io.Posix.shutdown(Native Method) at libcore.io.ForwardingOs.shutdown(ForwardingOs.java:149) at java.net.PlainSocketImpl.shutdownOutput(PlainSocketImpl.java:375) at java.net.Socket.shutdownOutput(Socket.java:652)  at com.danikula.videocache.HttpProxyCacheServer.closeSocketOutput(HttpProxyCacheServer.java:291)  at com.danikula.videocache.HttpProxyCacheServer.releaseSocket(HttpProxyCacheServer.java:270)  at com.danikula.videocache.HttpProxyCacheServer.processSocket(HttpProxyCacheServer.java:242)  at com.danikula.videocache.HttpProxyCacheServer.access$200(HttpProxyCacheServer.java:52)  at com.danikula.videocache.HttpProxyCacheServer$SocketProcessorRunnable.run(HttpProxyCacheServer.java:337)  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422)  at java.util.concurrent.FutureTask.run(FutureTask.java:237)  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)  at java.lang.Thread.run(Thread.java:818) 

视频缓冲问题

视频缓冲时,如果触碰了播放界面,加载动画就停止了

二次开发得非常好

经过你的二次开发,比节操播放器好用多了,而且功能还比节操播放器多了不少。节操播放器公开的API太少,而且wiki实在有点少

开放接口控制播放暂停

我想实现预览播放几秒后进行暂停播放以实现所需要的接口,我通过增加一个当前播放时间的监听接口,能否提供封装好的接口已实现播放和暂停操作。

关于onAutoComplete()回调的问题

我现在想实现一个videoView播放我一个string数组里面的视频地址的视频
我就在onAutoComplete这个回调里面再
videoView.setUp(urls[index],true,null,"");
然后startPlayLogic

//播放完了
@OverRide
public void onAutoComplete(String s, Object... objects) {
Log.d("tag","index:"+index);
//Log.d("tag","string:"+s);这是缓存地址
if(index != urls.length -1){
index ++;
}else{
index = 0;
}
videoView.setUp(urls[index],true,null,"");
startVideo();
}
然后LOG发现我的index是有递增,这个s地址
image
算不算同一个视频?如果不算那为什么我不能在这个方法内继续播放下一个视频?
先谢谢大大!新年快乐

你好,能做一个连续播放的demo吗

我现在有个需求,就是在监听到当前视频播放完成后,自动开始播list里的下一个视频,我自己写了点代码试了这个功能,但是发现播放到第二个视频的时候,只有声音,播放界面是黑的,不知道怎么回事

setUp()方法

5ab8f3fc-4590-4d83-9aca-709262ce54ee
如上图,我在setUp()方法里,加了一些我自己的业务进去。这些业务在播放器竖屏下是没有问题的,但点击全屏时,这些业务不见了。我需要做什么处理?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.