Giter Club home page Giter Club logo

jzvideo's People

Contributors

buhanzhe avatar bythewaydai avatar derlio avatar duguodong258 avatar felipetorres avatar haoxiqiang avatar hawk28 avatar hex1y avatar imknown avatar khrystal avatar kimnamcham avatar kslr avatar liberation-kkfire avatar liberations avatar lipangit avatar mickeybadbad avatar monsterlin avatar pandarman avatar sjandy88 avatar stevennick88 avatar toxicr avatar truelovesomegirl avatar uc10d avatar wxxsw avatar xuenhao avatar zachary46 avatar zdzcoding avatar zhangzhizhongz3 avatar zhangzzqq avatar zw73 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jzvideo's Issues

changeUrl函数的bug

**需求描述
设计上一个jzvd只setUp一次,然后需要更换其他url的时候调用changeUrl函数,需要测试在loading状态、播放状态、暂停状态、播放完毕状态、error状态、播放loading状态,下调用changeUrl均能正常播放下一个url。

可以参考切换清晰度的逻辑,切换清晰度本质上就是changeUrl。这个函数有bug。

小米手机报错

版本:cn.jzvd:jiaozivideoplayer:6.4.1
手机:Xiaomi Redmi K30

报错一:
ExoPlayerImplInternal: Internal runtime error.
java.lang.IllegalStateException
at android.media.MediaCodec.native_dequeueInputBuffer(Native Method)
at android.media.MediaCodec.dequeueInputBuffer(MediaCodec.java:2726)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:887)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:664)
at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:536)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:303)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:224)
at android.os.HandlerThread.run(HandlerThread.java:67)

报错二:
E/ExoPlayerImplInternal: Stop failed.
java.lang.IllegalStateException
at android.media.MediaCodec.native_stop(Native Method)
at android.media.MediaCodec.stop(MediaCodec.java:2147)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.releaseCodec(MediaCodecRenderer.java:608)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.releaseCodec(MediaCodecVideoRenderer.java:508)
at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:562)
at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onDisabled(MediaCodecVideoRenderer.java:377)
at com.google.android.exoplayer2.BaseRenderer.disable(BaseRenderer.java:153)
at com.google.android.exoplayer2.ExoPlayerImplInternal.disableRenderer(ExoPlayerImplInternal.java:983)
at com.google.android.exoplayer2.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:771)
at com.google.android.exoplayer2.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:742)
at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:358)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:224)
at android.os.HandlerThread.run(HandlerThread.java:67)

新版清晰度ui

**需求描述
做成如下图,头条的样子。changeUrl的代码部分我已经做完了,你只需要做ui。
**其他app是否实现

**截图或者小视频说明
WechatIMG275

RecyclerView中全屏返回后不能继续播放问题

RecyclerView添加划出屏幕释放JZ 后,RecyclerView中的视频全屏播放返回也会释放掉JZ.
Z.
添加的代码:
rv_featured_video.addOnChildAttachStateChangeListener(new RecyclerView.OnChildAttachStateChangeListener() {
@OverRide
public void onChildViewAttachedToWindow(View view) {
Log.e("initFeatureVideo", "setFeaturedVideo: 事件监听,可见播放");
}

        @Override
        public void onChildViewDetachedFromWindow(View view) {
            JZVideoPlayer jzVideoPlayer = view.findViewById(R.id.jz_video);
            if (jzVideoPlayer != null && JZVideoPlayer.CURRENT_JZVD != null &&
                    jzVideoPlayer.jzDataSource.containsTheUrl(JZVideoPlayer.CURRENT_JZVD.jzDataSource.getCurrentUrl())) {
                if (JZVideoPlayer.CURRENT_JZVD != null && JZVideoPlayer.CURRENT_JZVD.screen != JZVideoPlayer.SCREEN_FULLSCREEN) {
                    Log.e("initFeatureVideo", "setFeaturedVideo: 事件监听,不可见停止播放"+JZVideoPlayer.CURRENT_JZVD.screen );
                    JZVideoPlayer.releaseAllVideos();
                    //JZVideoPlayer.goOnPlayOnPause();
                    //Jzvd.releaseAllVideos();
                }
            }
        }
    });

全屏返回后不能继续播放问题

仿抖音列表

**需求描述

这个需求本质上是对列表的操作。

如果需要缓存多个视频实现秒开,需要播放内核的支持。

**其他app是否实现

**截图或者小视频说明

ijkPlayer内核,changeUrl的时候崩溃的问题

**什么jzvd版本
7.0.5
**相关log是什么
2019-12-31 18:06:21.766 8330-8699/com.android.benlailife.activity E/CrashReport: java.lang.IllegalArgumentException: surfaceTexture must not be null
at android.view.Surface.(Surface.java:219)
at com.android.benlai.view.video.JZMediaIjk.lambda$prepare$0$JZMediaIjk(JZMediaIjk.java:70)
at com.android.benlai.view.video.-$$Lambda$JZMediaIjk$UI-nD8X_LbpC8ryEPMkSuh36Nqc.run(Unknown Source:2)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.os.HandlerThread.run(HandlerThread.java:67)
**demo是否有这个问题

**如何操作复现
播放过程中,调用changeUrl启动更换视频,应用崩溃
**什么安卓版本,什么机型
android 10 , oneplus7pro
**最好有截图或者视频说明情况

继承jzvdStd之后布局中删除父类的控件会闪退

**需求描述
继承JzvdStd之后,不需要的控件要隐藏,如果删除,父类找不到空间id会闪退,这样做很不合理。目标是,删除父类引用的布局,不闪退。

需要思考研究是否有隐患,其他的地方有什么牵连。

java.lang.NullPointerException

**7.1.0版本

**log日志:
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.Handler.post(java.lang.Runnable)' on a null object reference
at cn.jzvd.JZMediaSystem.pause(JZMediaSystem.java:67)

**我的代码里调用如下:
是在全屏的dialog里播放的,弹出弹窗的时候就crash
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
video?.mediaInterface?.pause()
}

**安卓版本:9.0,华为手机

无法使用

添加依赖和混淆之后在xml中无法使用视频控件

添加锁功能

**需求描述

全屏的时候,添加锁按钮,点击锁按钮屏幕被锁住,无法操作,再次点击解锁。

**其他app是否实现
微信优酷等
**截图或者小视频说明

Bug Start Video

There are two problems:

  1. Loading speed of movie and its start is very slow.
  2. After movie starts in 5 second, it stops.

播放下一集

**需求描述
本质上就是在播放完毕,调用changeUrl函数,需要结合用户需求,看这个是否需要添加ui。

先解决changeUrl函数的bug

**其他app是否实现

**截图或者小视频说明

监听wifi动态,切换时给出提醒

**需求描述
在播放中如果wifi切换到流量,暂停视频,用dialog提醒用户,可以继续,可以release。如果继续播放调用start函数即可,播放内核会自动重新连接。
**其他app是否实现
头条
**截图或者小视频说明

重构Jzvd container

现在jzvd外面包一个container,这个原则上是多余的,应该去掉。

请问如何基于Mediaplayer的引擎播放本地视频

**需求描述
本地视频是通过ACTION_VIEW的方式将Uri传递过来的,但是在Jzvd中并未找到Uri相关的接口,直接将intent.getData().getPath()或者intent.getData().toString()传递过去无法播放。

**其他app是否实现

**截图或者小视频说明

error(1,-1004)

播放短视频时正常 但是播放长视频 大概十几分钟 之后就会报如下异常,测试视频地址:
http://img3.chouti.com/4cedb8d9-7e17-4971-a755-22378d711d90.mp4

2020-01-09 12:47:24.004 30553-30804/com.example.myapplication E/MediaPlayer: Error (1,-1004)
2020-01-09 12:47:24.009 30553-30553/com.example.myapplication E/JZVD: onError 1 - -1004 [72638395]
2020-01-09 12:47:26.816 30553-31050/com.example.myapplication E/ExtMediaPlayer-JNI: env->IsInstanceOf fails
2020-01-09 12:47:26.816 30553-31050/com.example.myapplication E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0

列表滑动自动播放

**需求描述
列表滑动到时播放适当位置的视频。

**其他app是否实现

**截图或者小视频说明

只把库引进gradle后,安装就报错,求助

**什么jzvd版本
7.0.5
**相关log是什么
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.lyc.player/com.lyc.player.ui.activity.SplashActivity}: java.lang.ClassNotFoundException: Didn't find class "com.lyc.player.ui.activity.SplashActivity" on path: DexPathList[[zip file "/data/app/com.lyc.player-GRewxizQR5yKctqqjYrhqA==/base.apk"]

Caused by: java.lang.ClassNotFoundException: Didn't find class "com.lyc.player.ui.activity.SplashActivity" on path: DexPathList[[zip file "/data/app/com.lyc.player-GRewxizQR5yKctqqjYrhqA==/base.apk"],nativeLibraryDirectories=[/data/app/com.lyc.player-GRewxizQR5yKctqqjYrhqA==/lib/arm64, /system/lib64, /system/vendor/lib64]]

//只加了implementation 'cn.jzvd:jiaozivideoplayer:7.0.5'

大致就是不能打开原来的闪屏页面(也就是启动页面),本来可以

**demo是否有这个问题
毫无问题
**如何操作复现
https://gitee.com/wayne0928/myvideo
直接安装会报错

**什么安卓版本,什么机型
android8.0
三星s7国行
**最好有截图或者视频说明情况
部署好直接就是"xxx已停止",具体情况就这些

老哥麻烦看下,谢了

ActivityListViewMultiHolder页面Bug

**什么jzvd版本
7.2.0
**相关log是什么
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window android.app.Activity.getWindow()' on a null object reference
at cn.jzvd.Jzvd.gotoScreenFullscreen(Jzvd.java:752)
at cn.jzvd.Jzvd.onClick(Jzvd.java:210)
at cn.jzvd.JzvdStd.onClick(JzvdStd.java:250)
at android.view.View.performClick(View.java:6294)
at android.view.View$PerformClick.run(View.java:24770)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
**demo是否有这个问题

**如何操作复现
ActivityListViewMultiHolder页面点击退出全屏按钮崩溃
**什么安卓版本,什么机型

**最好有截图或者视频说明情况

如何在播放视频时,切换成其他视频

**需求描述
当前实现自动循环播放,当服务器发送更新指令后,使用新的列表播放,使用新的列表播放时,第一次会一直显示加载,貌似等第一个视频播放完(界面上没有视频)的时间后,第二个视频才能显示,这时加载消失

**截图或者小视频说明

如何设置背景

在播放竖屏视频的时候播放器容器两边留白部分,在小米手机上是黑色 在华为上是白色 有没有方法统一设置这个背景

切换清晰度后无法正常播放

**什么jzvd版本
7.0.5 7.1.0 ---Demo
**相关log是什么
12-25 16:07:58.903 751-20361/? I/NuPlayer: performReset
12-25 16:07:58.903 751-20361/? I/NuPlayer: performReset: mRendererLooper->stop()
12-25 16:07:58.903 751-20361/? I/NuPlayer: performReset: mSource->stop()
12-25 16:07:58.903 751-20361/? I/GenericSource: stop()
12-25 16:07:58.903 19656-20424/cn.jzvd.demo W/MediaPlayer: setScreenOnWhilePlaying(true) is ineffective without a SurfaceHolder
12-25 16:07:58.905 751-1803/? I/NuPlayerDriver: setDataSource(0xf1d695e0) url(http://jzvd.nathen.cn/f07fa9fddd1e45a6ae1570c7fe7967c1/c6db82685b894e25b523b1cb28d79f2e-5287d2089db37e62345123a1be272f8b.mp4)
12-25 16:07:58.905 751-20361/? I/NuPlayer: performReset completed!
12-25 16:07:58.905 751-1803/? I/ExtendedGenericSource: CreatePersistentSource uid 10105 url http://jzvd.nathen.cn/f07fa9fddd1e45a6ae1570c7fe7967c1/c6db82685b894e25b523b1cb28d79f2e-5287d2089db37e62345123a1be272f8b.mp4
12-25 16:07:58.906 751-1803/? I/ExtendedGenericSource: Persistent source creation is disabled by property
12-25 16:07:58.906 751-1803/? I/NuPlayerDriver: setDataSource(url) wait mLock
12-25 16:07:58.906 751-751/? I/NuPlayerDriver: reset(mState = 0) get mLock
12-25 16:07:58.906 751-751/? I/NuPlayerDriver: ~NuPlayerDriver(0xf1d693a0)
12-25 16:07:58.906 751-20425/? I/NuPlayerDriver: notifySetDataSourceCompleted err = 0
12-25 16:07:58.906 751-751/? I/NuPlayerDriver: ~NuPlayerDriver(0xf1d693a0) end
12-25 16:07:58.906 751-1803/? I/NuPlayerDriver: setDataSource(url) get mLock
12-25 16:07:58.907 751-1803/? I/NuPlayerDriver: prepareAsync(0xf1d695e0)
12-25 16:07:58.907 19656-20424/cn.jzvd.demo W/System.err: java.lang.IllegalArgumentException: surfaceTexture must not be null
12-25 16:07:58.908 19656-20424/cn.jzvd.demo W/System.err: at android.view.Surface.(Surface.java:140)
12-25 16:07:58.908 19656-20424/cn.jzvd.demo W/System.err: at cn.jzvd.JZMediaSystem.lambda$prepare$0$JZMediaSystem(JZMediaSystem.java:53)
12-25 16:07:58.908 19656-20424/cn.jzvd.demo W/System.err: at cn.jzvd.-$$Lambda$JZMediaSystem$1SfpWnrQJjBakrZ3K2nGWWoyock.run(lambda)
12-25 16:07:58.908 19656-20424/cn.jzvd.demo W/System.err: at android.os.Handler.handleCallback(Handler.java:739)
12-25 16:07:58.908 19656-20424/cn.jzvd.demo W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
12-25 16:07:58.908 19656-20424/cn.jzvd.demo W/System.err: at android.os.Looper.loop(Looper.java:179)
12-25 16:07:58.908 19656-20424/cn.jzvd.demo W/System.err: at android.os.HandlerThread.run(HandlerThread.java:61)
**demo是否有这个问题
demo 7.0.5 , 7.1.0 ,切换清晰度后都无法正常播放
**如何操作复现
demo 必现
**什么安卓版本,什么机型
oppoR9S 小米8
**最好有截图或者视频说明情况

竟然有开车视频

**什么jzvd版本

**相关log是什么

**demo是否有这个问题

**如何操作复现

**什么安卓版本,什么机型

**最好有截图或者视频说明情况

将播放本地视频和播放assert视频放到单独的activity

**需求描述
Demo首页添加按钮,点击按钮进入新建的Activity,添加两个jzvd,一个播放Assert,一个播放本地文件的视频。

删除ActivityApi中关于播放本地视频的代码,删除customActivity中播放asset的代码。

startFullscreenDirectly 直接全屏播放,视频播放结束后,会出现空指针报错

java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window android.app.Activity.getWindow()' on a null object reference
at cn.jzvd.Jzvd.gotoScreenNormal(Jzvd.java:765)
at cn.jzvd.Jzvd.onAutoCompletion(Jzvd.java:451)
at cn.jzvd.JzvdStd.onAutoCompletion(JzvdStd.java:811)
at cn.jzvd.JZMediaSystem.lambda$onCompletion$7$JZMediaSystem(JZMediaSystem.java:144)
at cn.jzvd.JZMediaSystem$$Lambda$7.run(Unknown Source:2)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7762)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1047)

java.lang.NullPointerException

jzvd版本:'cn.jzvd:jiaozivideoplayer:6.4.1'
安卓版本:9.0
相关log:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.Context android.widget.FrameLayout.getContext()' on a null object reference
at xx.xxxx.xx.video.JZExoPlayer.void prepare()(JZExoPlayer.java:65)
at cn.jzvd.JZMediaManager$MediaHandler.void handleMessage(android.os.Message)(JZMediaManager.java:152)
at android.os.Handler.null dispatchMessage(null)(Handler.java:112)
at android.os.Looper.null loop(null)(Looper.java:216)
at android.os.HandlerThread.null run(null)(HandlerThread.java:65)

下载library

**什么jzvd版本

**相关log是什么

**demo是否有这个问题

**如何操作复现

**什么安卓版本,什么机型

**最好有截图或者视频说明情况

Go to the end of a video for a live

Hi and thanks for your amazing work!

I'm looking to play a stream video.
It's working but using startVideo() the player play the begining of the stream and I would like to play the end of the video to be in the live time.
How can I do that ?

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.