标签: avplayer

如何在iOS上使用MPMoviePlayerController或AVPlayer播放没有文件扩展名的电影文件?

我想在iPad上播放iOS 4.3中的电影.当文件名具有文件扩展名时,我已成功使用MPMoviePlayerController和AVPlayer从远程URL加载文件.但是,当我使用不返回文件名的CDN(只是一个不可猜测的随机名称)时,MPMoviePlayerController或AVPlayer似乎都无法应对.

有没有办法告诉任何一个玩家它真的是一个x型电影,它应该继续播放它?

MPMoviePlayerController将从其更改的状态通知返回以下错误:

{
    MPMoviePlayerPlaybackDidFinishReasonUserInfoKey = 1;
    error = "Error Domain=MediaPlayerErrorDomain Code=-12847 \"This movie format is not supported.\" UserInfo=0x5b60030 {NSLocalizedDescription=This movie format is not supported.}";
}
Run Code Online (Sandbox Code Playgroud)

我知道该文件是一个有效的m4v文件,因为当我重命名它时一切都很好.

iphone mpmovieplayercontroller ios avplayer

25
推荐指数
2
解决办法
8627
查看次数

迅速.AVPlayer.歌曲播放完毕后如何追踪?

什么是东方方式跟踪歌曲在Swift中播放AVPlayer的时候?

是否有任何在avplayer完成播放时调用的函数,或者我应该将计时器与avplayer类引用结合起来?

ios avplayer swift

25
推荐指数
5
解决办法
3万
查看次数

iOS 7 SDK不遵守背景音频

我在Google和StackOverflow上做了很多研究.我发现的所有答案在iOS 7中都不起作用.我开始在iOS 7 SDK中使用Xcode 5编写新的应用程序.

我所要做的就是从应用程序包中存储的文件(而不是音乐库)中播放应用程序中的音频.我希望在后台播放音频并在屏幕锁定时控制(除控制中心外).

我将APPNAME-Info.plist密钥设置UIBackgroundModes音频.它不处理app委托中的内容; 一切都在ViewController中完成

@interface ViewController : UIViewController <AVAudioPlayerDelegate>
Run Code Online (Sandbox Code Playgroud)

在实现的viewDidAppear:方法中,我调用super,然后是以下代码:

// Once the view has loaded then we can register to begin receiving controls and we can become the first responder
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
Run Code Online (Sandbox Code Playgroud)

在我的实现viewWillDisappear:方法中,我有以下代码:

// End receiving events
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
Run Code Online (Sandbox Code Playgroud)

我还实现了canBecomeFirstResponder方法,返回YES.接下来,我实现了该remoteControlReceivedWithEvent:方法:

- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
    // If it is a remote control …
Run Code Online (Sandbox Code Playgroud)

objective-c core-audio avaudioplayer avplayer ios7

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

从NavigationController中删除ViewController后,AVPlayer继续播放

所以我在我的项目中使用ARC,当我添加一个AVPlayerLayer时,它工作得很好,但是当我从UINavigationItem弹出UIViewController时,视频继续在后台播放.有谁知道你会如何处理这个?这似乎很简单,我只是俯瞰.这是我最初实例化的代码.

self.currentItem = [[AVPlayerItem alloc] initWithURL:url];

self.player = [[AVPlayer alloc]initWithPlayerItem:self.currentItem];
self.avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:player];

self.avPlayerLayer.bounds = self.view.bounds;
self.avPlayerLayer.frame = CGRectMake(0,55, 1024, 670);

self.view.backgroundColor = [UIColor clearColor];

[self.view.layer addSublayer:avPlayerLayer];
Run Code Online (Sandbox Code Playgroud)

这也是我如何确定属性的方式.

@property (strong) AVPlayer *player;
@property (strong) AVPlayerLayer *avPlayerLayer;
@property (strong) AVPlayerItem *currentItem;
Run Code Online (Sandbox Code Playgroud)

也许这完全错了.我不确定何时使用(强)vs(弱).任何情况下都要提前感谢您的帮助.

cocoa-touch ios avplayer automatic-ref-counting

23
推荐指数
2
解决办法
3万
查看次数

在AVPlayer的请求中添加自定义标头字段

使用AVPlayer时,是否可以将带有http请求的标头发送到音频文件?我需要能够在服务器收到时检查标头的内容,以限制对所请求文件的访问.

avfoundation ios avplayer

23
推荐指数
4
解决办法
1万
查看次数

无法阻止AVPlayer

我目前正在使用Swift测试AVPlayer与音频流网址的使用.有play()pause()方法,但问题是,仅暂停,流仍然缓存在设备中.

这是我的测试代码:

import UIKit
import AVFoundation

class ViewController: UIViewController {

    let player = AVPlayer(URL: NSURL(string: "http://streaming.radio.rtl.fr/rtl-1-48-192")!)

    @IBOutlet weak var btnPlay: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()            
    }

    @IBAction func btnPress(sender: AnyObject) {
        if (btnPlay.titleLabel?.text == "Play") {
            initPlayer()
            btnPlay.setTitle("Stop", forState: UIControlState.Normal)
        } else {
            stopPlayer()
            btnPlay.setTitle("Play", forState: UIControlState.Normal)
        }
    }

    func initPlayer()  {
        player.play()
    }

    func stopPlayer() {
        // player.currentItem = nil // Last thing I tried, but generate an error
        player.pause()
    }
} …
Run Code Online (Sandbox Code Playgroud)

ios avplayer swift

23
推荐指数
3
解决办法
2万
查看次数

AVPlayer的时间轴进度条

AVPlayer是完全可定制的,遗憾的是有方便的方法AVPlayer来显示时间线进度条.

AVPlayer *player = [AVPlayer playerWithURL:URL];
AVPlayerLayer *playerLayer = [[AVPlayerLayer playerLayerWithPlayer:avPlayer] retain];[self.view.layer addSubLayer:playerLayer];
Run Code Online (Sandbox Code Playgroud)

我有一个进度条,指示视频的播放方式,以及剩余的数量MPMoviePlayer.

那么如何获取视频的时间轴AVPlayer以及如何更新进度条

建议我.

iphone avfoundation uiprogressview ios avplayer

22
推荐指数
5
解决办法
3万
查看次数

如何检测AVPlayer实际上开始在swift中播放

您好我已将UISlider最小值设置为0.00.然后我以这种方式设置它的最大值.

self.viewPlayer.layer.addSublayer(playerLayer)
    let duration : CMTime = avPlayer.avPlayer.currentItem!.asset.duration
    let seconds : Float64 = CMTimeGetSeconds(duration)

    sliderBar.maximumValue=Float(seconds)
    sliderBar!.isContinuous = false
    sliderBar!.tintColor = UIColor.green
Run Code Online (Sandbox Code Playgroud)

但我得到了这个例外

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Attempting to set a slider's minimumValue (0.000000) to be larger than the maximumValue (nan)'
enter code here
Run Code Online (Sandbox Code Playgroud)

我知道在prepareForPlay()实际播放之后需要一些时间来真正播放视频.那么如何才能检测到播放器何时真正开始播放视频?请帮我.谢谢

uislider ios avplayer swift3

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

如何静音AVPlayer中播放的视频?

我在AVPlayer中播放视频,现在我需要在播放时单独静音.请建议如何做到客观C.

谢谢,Suresh

objective-c avplayer

21
推荐指数
4
解决办法
1万
查看次数

如何在AVPlayer中停止视频?

我正在使用此代码使用avplayer播放视频文件如何停止它

 [videoView setHidden:NO];
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *path2 = [documentsDirectory stringByAppendingPathComponent:saveFileName];
    NSURL *url1 = [[NSURL alloc] initFileURLWithPath: path2];
    videoPlayer = [AVPlayer playerWithURL:url1] ;
    self.avPlayerLayer = [AVPlayerLayer playerLayerWithPlayer:videoPlayer];

    //[self willAnimateRotationToInterfaceOrientation];
    avPlayerLayer.frame = videoView.bounds;
    [self.videoView.layer addSublayer: avPlayerLayer];

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

我试过这个不起作用

    //[self.videoPlayer release];
Run Code Online (Sandbox Code Playgroud)

objective-c avfoundation avplayer

21
推荐指数
5
解决办法
3万
查看次数