标签: avplayer

ios avplayer触发器流不受缓冲区限制

我想在流缓冲区为空时重新连接到服务器.

我怎样才能触发的方法时,AVPlayerAVPlayerItem缓冲区是空的?

我知道有playbackLikelyToKeepUp,playbackBufferEmpty以及playbackBufferFull检查缓冲区状态的方法,但那些不是回调.

是否有任何回调函数,或者我应该添加的任何观察者?

audio-streaming ios avplayer

16
推荐指数
1
解决办法
2万
查看次数

AVPlayer缓冲,暂停通知和海报框架

我有一些与之相关的问题AVPlayer:

  1. 当我们暂停AVPlayer通过时[player pause],AVPlayer保持从网络缓冲视频还是停止?我无法在apple的文档中获得与此相关的任何信息.此外,是否可以强制AVPlayer在暂停时保持缓冲,这样如果我们暂停的视频正在等待第一个视频结束,那么我们不会发现视频之间有任何差距?

  2. 在暂停AVPlayer我们可以有任何事件[player pause].

  3. 我们可以在AVPlayer几秒钟内显示静止图像吗?

谢谢

iphone avfoundation ios avplayer

16
推荐指数
1
解决办法
2万
查看次数

检测AVAudioSession何时被"剔除"

我正在开发一个Podcast应用程序.这会使用AVAudioSessionCategoryPlayback会话类型播放音频.这几乎可以完成我想要它做的所有事情.它会暂停其他播放的音乐,当有来电时它会被打断并且通常可以按照我想要的方式工作.

一个例外.当播放更高优先级的音频时(例如,当运行逐向导航应用程序时),我的应用程序中的音频会在音量上下降,但会继续运行.这造成了两种不希望的声音的可怕混合.我宁愿选择我的应用程序中的音频在过度播放的声音中暂停,然后在完成后再次继续.

我尝试过更改不同的AVAudioSession属性AVAudioSessionCategoryOptionMixWithOthers,但这些只会改变低优先级声音与我的应用程序混合的方式.它们不会改变我的如何与更高优先级的声音混合.我也试过观察它的otherAudioPlaying属性,sharedSession但是当我将这些短片重叠时,这并没有引发变化.

有没有办法检测我的应用程序中的音频何时被躲避,以便我可以暂停它?或者,为了防止我的应用程序的音频被躲避,以便将这些其他声音视为中断?

谢谢.

iphone ios avaudiosession avplayer

16
推荐指数
2
解决办法
2493
查看次数

Swift:AVPlayer - 如何从URL获取mp3文件的长度?

我正在使用swift构建我的第一个IOS应用程序,我遇到了问题:如何在流式传输时获取音乐文件的长度(持续时间)?

我做了很多研究,并编写了一些代码来解决这个问题,但似乎我的代码还不够好.

 func prepareAudio() {
    audioLength = CMTimeGetSeconds(self.player.currentItem.asset.duration) 
    playerProgressSlider.maximumValue = CFloat(CMTimeGetSeconds(player.currentItem.duration))
    playerProgressSlider.minimumValue = 0.0
    playerProgressSlider.value = 0.0
    showTotalSurahLength()
} // i prepare for get the duration and apply to UISlider here

func showTotalSurahLength(){
    calculateSurahLength()
    totalLengthOfAudioLabel.text = totalLengthOfAudio
} // get the right total length of audio file


func calculateSurahLength(){
    var hour_ = abs(Int(audioLength/3600))
    var minute_ = abs(Int((audioLength/60) % 60))
    var second_ = abs(Int(audioLength % 60))

    var hour = hour_ > 9 ? "\(hour_)" : "0\(hour_)"
    var minute = minute_ > …
Run Code Online (Sandbox Code Playgroud)

ios avplayer swift

16
推荐指数
3
解决办法
1万
查看次数

AVPlayer的音频测量级别

有没有办法从AVPlayer类获得音频测量级别?

我知道AVAudioPlayer会这样做,但它不像AVPlayer那样播放流式http .m3u8网址.

iphone objective-c avaudioplayer ios avplayer

15
推荐指数
1
解决办法
2688
查看次数

AVPlayer视频空白但听到声音

我正在切换MPMoviePlayerControllerAVPlayer我需要对视频交换进行更细粒度的控制..mov我正在播放的文件MPMoviePlayerController播放得很好,但在切换到AVPlayer我听到视频中的音频后,视频只显示我添加AVPlayerLayer到的视图背景.这是我如何初始化AVPlayer.

self.player = [[AVPlayer alloc] initWithURL:video];

AVPlayerLayer* playerLayer = [AVPlayerLayer playerLayerWithPlayer:self.player];
playerLayer.frame = self.playerContainer.bounds;
[self.playerContainer.layer addSublayer:playerLayer];
Run Code Online (Sandbox Code Playgroud)

后来我发了一个.

[self.player play];
Run Code Online (Sandbox Code Playgroud)

播放视频时,我会听到音频,但看不到视频.我也尝试将zPosition设置为没有运气.

playerLayer.zPosition = 1;
Run Code Online (Sandbox Code Playgroud)

iphone objective-c ios avplayer avplayerlayer

15
推荐指数
1
解决办法
7712
查看次数

启动AVPlayer时如何显示暂停的视频而不是黑屏

我能够成功创建一个播放器,但对最初的黑屏感到恼火.我决定覆盖UIImageView并在播放器启动后隐藏它.这很有用,但我不想为我的所有视频创建和维护图像的麻烦.

我能够通过播放获得我想要的确切结果,并在实例化之后立即暂停播放器.唯一的问题是,有时玩家的状态记录不正确,所以当我再次启动玩家时,状态被列为已经"正在播放",即使播放器已暂停.

我开始研究使用AVPlayerItem seekToTime但没有找到任何可行的解决方案.是否有"非hacky"方式实现这一目标?

avfoundation ios avplayer

15
推荐指数
1
解决办法
1667
查看次数

AVPlayer使用资源加载器委托停止在大型视频文件上

我正在使用这种方法来保存AVPlayer的缓冲区数据以用于视频文件.找到这个问题的答案保存AVPlayer的缓冲区数据.

iPhone和iPad - iOS 8.1.3

我做了必要的更改来播放视频,它工作得非常好,除非我尝试播放一段很长的视频(长11-12分钟,大小约为85mb),视频将在连接完成加载后大约4分钟停止.我收到了playbackBufferEmpty事件和播放器项目停止通知.

这是代码的要点

viewController.m
@property (nonatomic, strong) NSMutableData *videoData;
@property (nonatomic, strong) NSURLConnection *connection;
@property (nonatomic, strong) AVURLAsset *vidAsset;
@property (nonatomic, strong) AVPlayerItem *playerItem;
@property (nonatomic, strong) AVPlayerLayer *avlayer;
@property (nonatomic, strong) NSHTTPURLResponse *response;
@property (nonatomic, strong) NSMutableArray *pendingRequests;


/**
    Startup a Video
 */
- (void)startVideo
{
    self.vidAsset = [AVURLAsset URLAssetWithURL:[self videoURLWithCustomScheme:@"streaming"] options:nil];
    [self.vidAsset.resourceLoader setDelegate:self queue:dispatch_get_main_queue()];
    self.pendingRequests = [NSMutableArray array];

    // Init Player Item
    self.playerItem = [AVPlayerItem playerItemWithAsset:self.vidAsset];
    [self.playerItem addObserver:self forKeyPath:@"status" options:NSKeyValueObservingOptionNew …
Run Code Online (Sandbox Code Playgroud)

ios avplayer avplayeritem

15
推荐指数
1
解决办法
5987
查看次数

快速上传视频和播放,无需缓冲来自URL的视频

在我的应用程序中,我正在捕获10秒的视频并通过FTP上传到服务器,而其他用户可以通过Web服务响应中的URL观看此视频.

根据我的问题,我希望以小尺寸捕获质量好的视频,以便通过FTP上传视频.现在我正在使用.mp4 video formate上传视频,如果有人知道最好的视频形成,可以提高上传速度,然后指导我.

其次,我将所有上传的视频作为URL在Web服务的响应中获取.作为回应,有许多URL,所以我需要在队列中逐个播放视频,最终用户可以向左滑动以在NEXT视频上移动并向右滑动到之前的视频.你可以在这里看到我的代码.

每件事情都很好,但问题需要花费很多时间上传播放 (缓冲时间)视频.

请指导我这一点.

评论:在20 MB到1.6 MB的压缩视频中获得成功,因此上传速度位增加,现在正在处理AVQueuePlayer队列中的播放视频,但有时会将视频卡在播放中.

ftp objective-c ios avcapturesession avplayer

15
推荐指数
1
解决办法
667
查看次数

AudioHardware.cpp:1200:AudioObjectRemovePropertyListener:AudioObjectRemovePropertyListener:没有给定ID为0的对象

在swift中处理一个项目,我正在尝试启动AVPlayer,由于某种原因,我告诉我一个例外说法

AudioHardware.cpp:1200:AudioObjectRemovePropertyListener:AudioObjectRemovePropertyListener:没有给定ID为0的对象.

我想问题出在我的网址上.这是我的代码

func initPlayer() {
    let url:NSURL = NSURL(string:"https://purelight1-163000.appspot.com/api/user/v2/media/track/60/sample")!
    self.playerItem = AVPlayerItem(url: url as URL)
    self.player=AVPlayer(playerItem: self.playerItem!)
    let playerLayer=AVPlayerLayer(player: self.player!)
    playerLayer.frame = CGRect(x: 0, y: 0, width: 10, height: 50) // actually this player layer is not visible
    self.view.layer.addSublayer(playerLayer)
}
Run Code Online (Sandbox Code Playgroud)

ios avplayer swift swift4

15
推荐指数
2
解决办法
5765
查看次数