Giter Club home page Giter Club logo

ksymediaplayer_ios's People

Contributors

fpzeng avatar ksysdkci avatar mayudong1 avatar noiled avatar shixuemei avatar sujia 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

ksymediaplayer_ios's Issues

iOS端加载流走 MPMoviePlayerPlaybackDidFinishNotification 通知,但是同一个流在PC端是可以播放的

在iOS和Android端都会遇到的同一个问题,因为需求原因同一个直播间的直播流是动态变化的,每次进入直播间的流都不同,加载多次之后偶发性的会走 MPMoviePlayerPlaybackDidFinishNotification 这个通知方法,测试走 MPMoviePlayerPlaybackDidFinishNotification 通知的流在PC端是可以播放的。请问这个可能是什么原因造成的呢?

播放过程中分辨率改变了

播放过程中有的推流地址分辨率改变了,监听了尺寸改变的通知,可SDK没有好像没有提供解决方案,可用此地址rtmp://rlive.jia.360.cn/live_jia_public/36060744749放到Demo中测试

加载直播或者播放直播中 会崩溃

使用的sdk的版本是2.5.0 iPhone6 plus 10.3.2
0 CoreFoundation 0x000000018930eff8 + 148
1 libobjc.A.dylib 0x0000000187d70538 objc_exception_throw + 56
2 CoreFoundation 0x000000018930ef28 + 0
3 jiuduzhibo 0x1003b10cc jiuduzhibo + 3870924
4 libsystem_platform.dylib 0x00000001883cd30c _sigtramp + 36
5 KSYMediaPlayer 0x0000000100efc988 av_packet_unref + 20
6 KSYMediaPlayer 0x0000000100efc988 av_packet_unref + 20
7 KSYMediaPlayer 0x0000000100e5bd84 stream_component_close + 200
8 KSYMediaPlayer 0x0000000100e58324 stream_close + 160
9 KSYMediaPlayer 0x0000000100e59838 ffp_wait_stop_l + 64
10 KSYMediaPlayer 0x0000000100e6f9fc -[IJKFFMoviePlayerController shutdownWaitStop:] + 44
11 Foundation 0x0000000189e022d8 + 996
12 libsystem_pthread.dylib 0x00000001883d168c + 240
13 libsystem_pthread.dylib 0x00000001883d159c + 0
14 libsystem_pthread.dylib 0x00000001883cecb4 thread_start + 4

在iOS 8.2 9 10 11的系统中中都会出现这条崩溃记录
根据我们的跟踪统计出来 这个崩溃原因占比很高

當發佈端停止發佈音頻時,視頻卡住

  1. 當發佈端停止發佈音頻時,視頻卡住不動。
    發佈端重新發佈音頻時,視頻快轉(緩衝部分),音頻正常。
  2. 當發佈端停止發佈音頻時,視頻卡住不動。
    播放端重新連接視頻,視頻正常,
    接著發佈端重新發佈音頻,播放端無聲音。

视频快进获取缩略图卡顿

下面两句代码我是放到了Slider的valueChange方法里的,滑动了Slider就去获取缩略图 然后显示出来

 UIImage *thumbImage=[self.prober getVideoThumbnailImageAtTime:interval width:0 height:0];
    
 self.srcImageView.image=thumbImage;

运行之后 ,发现放到主线程里获取缩略图会显得有些卡顿,

然后就改了一下,把获取缩略图的方法放到了子线程里执行,获取到了图片之后放回到主线程设置图片,用gcd创建了一个串行队列,代码如下

dispatch_queue_t queue=dispatch_queue_create("playerCaptureThumbQueue", DISPATCH_QUEUE_SERIAL);
    dispatch_async(queue, ^{
        
        UIImage *thumbImage=[self.prober getVideoThumbnailImageAtTime:interval width:0 height:0];
        dispatch_async(dispatch_get_main_queue(), ^{
           self.srcImageView.image=thumbImage;
        });
  });

运行之后发现获取的缩略图是如代码所设置的,一个一个获取的,当手指松开拖动Slider的时候,UIImageView中显示的图片还是一个一个加载的 会持续一会儿

然后我把串行队列改成了并行队列,程序执行 ,拖动了一下Slider之后,就崩溃了,想问一下有没有解决方案呢。

iOS版本在iphone5手机ios7下运行crash

如图:出现类似诸如“KSYReachabillity.o was built for newer iOS version(8.0) than being linked 7.0”的警告(有数十个),运行在iOS8.1、9.0、10.3的机子上均正常,但运行在iphone5 ios7.1的机子上crash。

image

网络切换的状态不对

监听 MPMoviePlayerNetworkStatusChangeNotification 通知,在通知里去获取当前播放器的networkStatus,拿到的值是上一次的网络状态,与当前网络不一致。

测试案例 ,蜂窝移动网络关闭,wifi打开,播放视频,然后关闭wifi,这个时候的网络状态应该是不可用的,但是返回的状态还是wifi状态,然后再打开wifi,这个时候返回的状态就是不可用的状态了,但此时网络状态应该是wifi才对。

播放错误,获取错误停止的时间。

我用一个实例去播放不同的视频,类似微博自动播放视频,会出现-10011这个错误,频率比较高。报错日志:
2017-09-14 20:01:55.277735+0800 AmusementVideo[16604:4096166] FFP_MSG_SEEK_COMPLETE
2017-09-14 20:01:55.291854+0800 AmusementVideo[16604:4096166] FFP_MSG_BUFFERING_END
2017-09-14 20:01:55.292018+0800 AmusementVideo[16604:4096166] loading cost 1.845417 seconds with 33 times
2017-09-14 20:01:55.293864+0800 AmusementVideo[16604:4096166] player playback state: 1
after scale width 1280 height 720

如何获得 1.845417这个时间点?

請問這是開源的SDK嗎?

請問使用此SDK需要收費嗎?是否支援RTSP?可連續播放avi檔案不間斷嗎?是否可提供點播framework 的範例程式?有swift語法的更好.

Deprecated Notification

Hey,

I am trying to listen for various changes in the player. When I add observers on certain notification names like: MPMediaPlaybackIsPreparedToPlayDidChangeNotification, MPMoviePlayerPlaybackStateDidChangeNotification, MPMoviePlayerPlaybackDidFinishNotification etc.

Deprecated in iOS 9.0: No longer supported. 

How to change the quality?

Hi.
Thanks for your good project.
I tried with the demo app. The app worked very good. But I found that the quality in publisher is better than player. Could we change the quality?
Thanks.

工程导入报错

/Users/lyy/Desktop/研究/嘉定残联/sunhome_jdcl(workingcopy)/Pods/KSYMediaPlayer_iOS/framework/vod/KSYMediaPlayer.framework/Headers/KSYMoviePlayerDefines.h:142:1: error: unknown type name 'MP_EXTERN'
MP_EXTERN NSString *const MPMediaPlaybackIsPreparedToPlayDidChangeNotification;
^
/Users/lyy/Desktop/研究/嘉定残联/sunhome_jdcl(workingcopy)/Pods/KSYMediaPlayer_iOS/framework/vod/KSYMediaPlayer.framework/Headers/KSYMoviePlayerDefines.h:142:19: error: expected ';' after top level declarator
MP_EXTERN NSString *const MPMediaPlaybackIsPreparedToPlayDidChangeNotification;
^
;
/Users/lyy/Desktop/研究/嘉定残联/sunhome_jdcl(workingcopy)/Pods/KSYMediaPlayer_iOS/framework/vod/KSYMediaPlayer.framework/Headers/KSYMoviePlayerDefines.h:145:1: error: unknown type name 'MP_EXTERN'
MP_EXTERN NSString * const MPMoviePlayerPlaybackStateDidChangeNotification;
^
/Users/lyy/Desktop/研究/嘉定残联/sunhome_jdcl(workingcopy)/Pods/KSYMediaPlayer_iOS/framework/vod/KSYMediaPlayer.framework/Headers/KSYMoviePlayerDefines.h:145:19: error: expected ';' after top level declarator
MP_EXTERN NSString * const MPMoviePlayerPlaybackStateDidChangeNotification;
^
;
/Users/lyy/Desktop/研究/嘉定残联/sunhome_jdcl(workingcopy)/Pods/KSYMediaPlayer_iOS/framework/vod/KSYMediaPlayer.framework/Headers/KSYMoviePlayerDefines.h:148:1: error: unknown type name 'MP_EXTERN'
MP_EXTERN NSString * const MPMoviePlayerPlaybackDidFinishNotification;
^
/Users/lyy/Desktop/研究/嘉定残联/sunhome_jdcl(workingcopy)/Pods/KSYMediaPlayer_iOS/framework/vod/KSYMediaPlayer.framework/Headers/KSYMoviePlayerDefines.h:148:19: error: expected ';' after top level declarator
MP_EXTERN NSString * const MPMoviePlayerPlaybackDidFinishNotification;
^
;
/Users/lyy/Desktop/研究/嘉定残联/sunhome_jdcl(workingcopy)/Pods/KSYMediaPlayer_iOS/framework/vod/KSYMediaPlayer.framework/Headers/KSYMoviePlayerDefines.h:149:1: error: unknown type name 'MP_EXTERN'
MP_EXTERN NSString * const MPMoviePlayerPlaybackDidFinishReasonUserInfoKey; // NSNumber (MPMovieFinishReason)
^
/Users/lyy/Desktop/研究/嘉定残联/sunhome_jdcl(workingcopy)/Pods/KSYMediaPlayer_iOS/framework/vod/KSYMediaPlayer.framework/Headers/KSYMoviePlayerDefines.h:149:19: error: expected ';' after top level declarator
MP_EXTERN NSString * const MPMoviePlayerPlaybackDidFinishReasonUserInfoKey; // NSNumber (MPMovieFinishReason)
^
;
/Users/lyy/Desktop/研究/嘉定残联/sunhome_jdcl(workingcopy)/Pods/KSYMediaPlayer_iOS/framework/vod/KSYMediaPlayer.framework/Headers/KSYMoviePlayerDefines.h:152:1: error: unknown type name 'MP_EXTERN'
MP_EXTERN NSString * const MPMoviePlayerLoadStateDidChangeNotification;

shouldAutoplay 和 prepareToPlay

shouldAutoplay在prepareToPlay后设置无效。
有场景可能在调用prepareToPlay后发现需要重新设置shouldAutoplay。望处理

isPreparedToPlay参数失效

isPreparedToPlay参数不正确。MPMediaPlaybackIsPreparedToPlayDidChangeNotification监听还没有告诉已经准备好了,但是调用isPreparedToPlay参数返回true,返回已经准备好状态。

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.