标签: avplayerviewcontroller

一个 AVPlayerItem 无法与多个 AVPlayer 实例关联,播放多个视频时出错

因此,我搜索了有关此错误的所有帖子,但没有任何效果。发生的情况是,当我第一次打开以下视图控制器时,一切正常。但是当我关闭控制器并尝试第二次播放视频时,我收到此错误。不知道为什么。

  NSMutableArray *AVPlayerItems;

 AVQueuePlayer *player ;

  NSURL *url = [NSURL fileURLWithPath:filePath];

  AVPlayerItem *firstItem = [AVPlayerItem playerItemWithURL: url3];



       [AVPlaterItems addObject:firstItem];



        player = [AVQueuePlayer queuePlayerWithItems:AVPlayerItems];


            playerController = [AVPlayerViewController new];
            playerController.delegate = self;
            [self.viewPlayer addSubview:playerController.view];
            playerController.view.frame = self.viewPlayer.frame;

            playerController.showsPlaybackControls = NO;


            playerController.player = player;
            [playerController.player play];
        playerController.player.muted = YES;



        [self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

xcode ios avplayer avplayerviewcontroller

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

AVPlayerViewController 点击“完成”会关闭错误的视图控制器

我有一个带有视图控制器(称为 A)的导航控制器,其中包含一个表格视图。我点击 tableview 中的一个项目,然后进入一个新的视图控制器,将其称为 B。在 BI 中显示 AVPlayerViewController,当完成查看时,我点击“完成”,它会一直返回到 vc A(而不是 B)。我究竟做错了什么?

avfoundation ios avplayer swift avplayerviewcontroller

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

检查有效网址在avplayercontroller中播放?

我有三个网址,必须检查这些网址是否有视频链接播放.如果它不包含网址中的视频并从下一个网址播放视频,我必须esc链接.以下代码将有助于跟踪播放状态.

let playerAV = AVPlayerViewController()
  var player = AVPlayer()
  playerAV.player = player
  playerAV.view.frame = CGRectMake(0, 0,  self.videoView.frame.width,  self.videoView.frame.height)
  self.addChildViewController(playerAV)
  self.videoView.addSubview(playerAV.view)
  playerAV.didMoveToParentViewController(self)
  playerAV.player?.play()
  addObserverOfMoviePlayer()

 NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ChannelDetailViewController.notificationObserver(_:)), name:AVPlayerItemDidPlayToEndTimeNotification , object: player.currentItem)
    _ = UIDevice.beginGeneratingDeviceOrientationNotifications
    NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(ChannelDetailViewController.deviceOrientationDidChange(_:)) , name:
      UIDeviceOrientationDidChangeNotification, object: nil)
    playerAV.player!.addObserver(self, forKeyPath: "rate", options: NSKeyValueObservingOptions.New, context: nil)
    playerAV.player!.currentItem!.addObserver(self, forKeyPath: "playbackBufferEmpty", options: NSKeyValueObservingOptions.New, context: nil)
    playerAV.player!.currentItem!.addObserver(self, forKeyPath: "playbackLikelyToKeepUp", options: NSKeyValueObservingOptions.New, context: nil)

override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {

    if keyPath == "rate" …
Run Code Online (Sandbox Code Playgroud)

ios avplayer swift avplayerviewcontroller

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

iOS - 在 AVKit obj-c 中使用 AVPlayerViewController

我正在尝试更新这个已弃用的方法:“presentMoviePlayerViewControllerAnimated”,但是我无法导入 AVKit 并使用 AVPlayerViewContoller。似乎我的 Xcode 没有以某种方式看到这个框架。

这是我的代码:

比赛详情VC.m

   -(void) tableView:(UITableView *)tableView didSelectRowAtIndexPath (NSIndexPath *)indexPath {
YoutubeVideoModel* video = [_videos objectAtIndex:indexPath.row];

XCDYouTubeVideoPlayerViewController *videoPlayerViewController = [[XCDYouTubeVideoPlayerViewController alloc] initWithVideoIdentifier:video.videoID];
   =>[self presentMoviePlayerViewControllerAnimated:videoPlayerViewController];
Run Code Online (Sandbox Code Playgroud)

无法访问 AVKit 文件: 使用 CM + 单击

MatchDetalisVC.m更新

[self presentViewController:videoPlayerViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)

用这个更改了最后一行。没有错误。看来我也不必在我的 ViewController 中 #import AVKit 。是正确的吗?

objective-c ios avplayer avkit avplayerviewcontroller

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

将 AVPlayerViewController 视图添加到外部窗口

我想以编程方式AVPlayerViewController从 iPad 向外部窗口添加视图。问题是添加时,播放器视图显示“此视频正在电视上播放”

示例代码:

let player = AVPlayer(url: someUrl)
//these two properties seem to have no effect
//player.usesExternalPlaybackWhileExternalScreenIsActive = true/false
//player.allowsExternalPlayback = true/false
let viewController = AVPlayerViewController()
viewController.player = player
viewController.view.frame = frame
externalWindow.addSubview(viewController.view)
player.play()
Run Code Online (Sandbox Code Playgroud)

有没有办法将视频视图自己添加到外部窗口,以便我可以决定大小?

ios avplayer swift avplayerviewcontroller

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

仅适用于iPhone x的AVPlayer全屏问题

我使用Av播放器视图控制器创建了一个启动视频.它适用于所有设备,除了我的手机X.我尝试改变视频重力框架和一切,但它不会工作.关于这个的任何想法?这是示例代码:

guard let videoPath = Bundle.main.path(forResource: "Redtaxi-splash", ofType:"mov") else {
    return
}

let videoURL = URL(fileURLWithPath: videoPath)
let player = AVPlayer(url: videoURL)
playerViewController = AVPlayerViewController()
playerViewController?.player = player
playerViewController?.showsPlaybackControls = false
playerViewController?.view.frame = view.frame
playerViewController?.view.backgroundColor = .white
playerViewController?.view.contentMode = .scaleAspectFill


NotificationCenter.default.addObserver(self, selector: #selector(playerDidFinishPlaying(note:)),
                                       name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player.currentItem)

view.addSubview((playerViewController?.view)!)
playerViewController?.player?.play()
Run Code Online (Sandbox Code Playgroud)

ios avplayer swift avplayerviewcontroller swift4

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

SwiftUI AVPlayer - 如何暂停和恢复播放?

因此,我创建了一个名为“VideoElement”的视图,当父视图加载时,它将在后台播放视频。效果很好。但是,我不知道如何实现暂停/恢复系统。我想更改一个变量(var“paused”),该变量在 true 时暂停视频,在 false 时恢复播放。这有点管用。具体来说,当“暂停”为真时,视频暂停。但是,当它变为 false 时,视频不会恢复播放。

也许它可能与“updateUIViewController”有关?另外,我不知道为什么“暂停”必须是绑定变量而不是状态变量(@State 不起作用)。任何帮助将不胜感激。谢谢!

import SwiftUI
import AVKit

struct VideoElement: View {

    var fileName: String
    @Binding var paused: Bool //this controls playback

    var body: some View {
    
        let player = AVPlayer(url: URL(fileURLWithPath: Bundle.main.path(forAuxiliaryExecutable: fileName)!))
    
        AVPlayerControllerRepresented(player: player)
            .onAppear {
                player.play()
            }
            .onChange(of: paused, perform: { paused in
                if paused {
                    player.pause()
                }
                else {
                    player.play() //should play the video, does not
                    print("resume") //this runs, so above should've run also
                }
            })
        }  
    }
}

struct AVPlayerControllerRepresented …
Run Code Online (Sandbox Code Playgroud)

ios avplayer avplayerviewcontroller swiftui uiviewrepresentable

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

如何使用playerViewController快速使视频循环播放?

我正在尝试在TVOS的Swift上使用playerViewController循环播放视频。我的视频播放正常,但是我想循环播放视频。到目前为止,这是我的代码:

override func viewDidAppear(_ animated: Bool) {
    let videoURL = URL(string: "https://url-to-video.com/video.mp4")
    let player = AVPlayer(url: videoURL!)
    let playerViewController = AVPlayerViewController()
    playerViewController.player = player        self.present(playerViewController, animated: true) {
        playerViewController.player!.play()
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。谢谢

video xcode swift avplayerviewcontroller tvos

0
推荐指数
1
解决办法
941
查看次数