标签: avplayerviewcontroller

AVPlayer不播放音频 - iOS 9,Objective - C

我正在尝试从我的应用程序中的URL播放音频.一切都在iOS 8(模拟器和物理设备)中按预期发生.对于iOS 9,它可以在模拟器中工作,但在设备上,音频根本无法播放.流式传输出现,如果我点击播放,进度条也会显示音频正在加载和播放,但声音没有出现.此问题发生在iOS 9物理设备中.它适用于iOS 8物理设备.

我创建了一个简单的按钮.单击按钮,将加载AVPlayerViewController,并使用给定的URL初始化AVPlayer.代码如下:

#import "ViewController.h"
#import <AVKit/AVKit.h>
#import <AVFoundation/AVFoundation.h>


@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
- (IBAction)playAudio:(id)sender {
    NSURL *url = [NSURL URLWithString:@"https://path/to/my.mp3"];
    [self performSegueWithIdentifier:@"playSegue" sender:url];
}

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    AVPlayerViewController *viewController = (AVPlayerViewController *)segue.destinationViewController;
    viewController.player = [AVPlayer playerWithURL:(NSURL *)sender];
}

@end
Run Code Online (Sandbox Code Playgroud)

objective-c avplayer ios9 xcode7 avplayerviewcontroller

7
推荐指数
2
解决办法
6176
查看次数

按下完成按钮后,让AVPlayerViewController继续播放

我有一个AVPlayerViewController播放直播内容的实例,我将其作为子视图添加到我的viewController视图中.

切换AVPlayerViewController到全屏模式并点击完成按钮退出全屏后,播放器停止播放.

完成按钮动作后有没有办法让玩家继续玩?

objective-c ios swift avplayerviewcontroller

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

AVPlayerViewController 从全屏返回后停止

我有一个AVPlayerViewController我用一个AVPlayer和一些AVPlayerItem(iOS 10,Xcode 8,Objective C)初始化的。将AVPlayerViewController呈现“内联”的一些子视图里面,一切都与本机播放控制完美的作品。

当我按下本机全屏按钮时,它也可以正常工作并切换到全屏模式(左上角有“完成”按钮)。

我的问题是当我按下完成按钮从全屏返回时,播放器出于某种原因停止播放,自行重置,如果我检查.currentItem,我看到它是nil.

这里发生了什么事?为什么不能在从/到全屏切换之间AVPlayerViewController保持它AVPlayerItem

objective-c ios avplayer avplayeritem avplayerviewcontroller

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

在iOS 11上滑动时AVPlayerViewController黑屏

我正在AVPlayerViewControlleriPad-App上播放视频文件(H.264,AAC,MP4-Container).一切都在iOS 10中运行.而且在iOS 11中它正确播放视频.

但是在iOS 11中,当我开始向任何方向滑动时,它会立即使视频变黑并使音频静音.它还显示底部时间轴旁边的加载指示器.

它也忽略了allowsPictureInPicturePlayback属性,因此它不会在iOS 11上显示PIP-Button.

这是我使用的代码:

avPlayerController = AVPlayerViewController()
avPlayerController?.showsPlaybackControls = true
avPlayerController?.allowsPictureInPicturePlayback = true
avPlayerController?.player = AVPlayer(url: videoUrl as URL)
avPlayerController?.player?.play()            

self.present(self.avPlayerController!, animated: true, completion: nil)            

avPlayerController?.player?.actionAtItemEnd = AVPlayerActionAtItemEnd.none
NotificationCenter.default.addObserver(self, selector: #selector(onVideoCompleted), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: self.avPlayerController!.player?.currentItem)
Run Code Online (Sandbox Code Playgroud)

此功能可在视频结束时关闭视频播放器:

func onVideoCompleted(notification:Notification) {
    self.avPlayerController?.player = nil
    self.avPlayerController?.dismiss(animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

当屏幕黑屏时,我在控制台中看到了这个:

AVOutputDeviceDiscoverySession (FigRouteDiscoverer) 
>>>> -[AVFigRouteDiscovererOutputDeviceDiscoverySessionImpl 
outputDeviceDiscoverySessionDidChangeDiscoveryMode:]: Setting device discovery 
mode to DiscoveryMode_Presence (client: MyAppName)
Run Code Online (Sandbox Code Playgroud)

video swift avplayerviewcontroller ios11

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

Swift 4:CUICatalog:提供的资产名称无效:'(null)'仅在使用AVPlayerViewController时

我正在尝试播放本地视频文件并继续获取以下日志:

[framework] CUICatalog:提供的资产名称无效:'(null)'

我的视频文件位于项目目录中,也位于主捆绑资源中.我尝试了多种语法版本来播放视频.这是我现在在测试项目中的代码:

@IBAction func buttonAction(_ sender: Any) {

    if let path = Bundle.main.path(forResource: "slipMovement", ofType: 
    "mp4") {
        let video = AVPlayer(url: URL(fileURLWithPath: path))
        let videoPlayer = AVPlayerViewController()
        videoPlayer.player = video

        present(videoPlayer, animated: true, completion:  {
            video.play()
        })
    }
}
Run Code Online (Sandbox Code Playgroud)

当我使用AVplayer和PlayerLayer时,我没有收到'null'消息.它只发生在我使用AVPlayerViewController时.

我对编程很新,任何帮助都会非常感激,因为我在网上找不到合适的解决方案.

debugging avplayer swift avplayerviewcontroller

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

AVPlayerViewController 在存在外部 UIScene 的情况下进行 Airplay

我有一个用于外部屏幕的 UISceneConfiguration,当外部显示器连接到 iOS 设备时会触发该配置。

// MARK: UISceneSession Lifecycle
@available(iOS 13.0, *)
func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration {
    // Called when a new scene session is being created.
    // Use this method to select a configuration to create the new scene with.
           switch connectingSceneSession.role {
               case  .windowApplication:
                   return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role)
               case .windowExternalDisplay:
                   return UISceneConfiguration(name: "External Screen", sessionRole: connectingSceneSession.role)
               default:
                   fatalError("Unknown Configuration \(connectingSceneSession.role.rawValue)")
               }
}
Run Code Online (Sandbox Code Playgroud)

我在链接到外部显示器的新 UIScene 中以这种方式在外部屏幕中显示自定义视图。但现在的问题是,如果我在应用程序流程中也有一个 AVPlayerViewController,它不再显示(播放)到外部屏幕。我想 AVPlayerViewController 可能会为外部显示播放做它自己的配置,但现在我有一个嵌入在外部屏幕上的自定义视图,它无法覆盖它。我需要做什么才能使 AVPlayerViewController 可以按其方式将内容显示到外部屏幕? …

avfoundation uikit ios avplayer avplayerviewcontroller

7
推荐指数
0
解决办法
109
查看次数

无法在AVPlayer中播放mp4视频

在此输入图像描述我正在使用AVPlayer播放视频.我无法播放.mp4视频.我得到了这个黑屏.这是我的代码.

`NSString *filePath = [self.videoArray objectAtIndex:index];
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:filePath ofType: @"mp4];
url = [[NSURL alloc] initFileURLWithPath: soundFilePath];
playerViewController = [[AVPlayerViewController alloc] init];
playerViewController.videoGravity = AVLayerVideoGravityResize;
playerViewController.view.frame = self.view.bounds;
playerViewController.showsPlaybackControls = NO;
video=[AVPlayer playerWithURL:url];
playerViewController.player = _video;
playerViewController.view.userInteractionEnabled = false;
[video play];
[self.view addSubview:playerViewController.view];`
Run Code Online (Sandbox Code Playgroud)

video objective-c avplayer avplayerviewcontroller

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

在swift中,如何在AVPlayerViewController中播放视频时检测触摸

我已经以编程方式添加了AVPlayerViewController一个UIViewController.我可以在玩家完成游戏时收到通知(playerDidFinishPlaying).我还想知道用户是否在播放视频时触摸了屏幕,但我没有找到任何相关的通知.

ios avplayer swift avplayerviewcontroller

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

iOS 10 AVPlayer 不会从没有扩展名且视频/mp4 作为内容类型的 URL 流式传输视频

目前,我们使用标准的AVPlayerviaAVPlayerViewController来播放视频。我们正在以https://ourdomain/media/mediaid?jwt=authTokenHere格式从 url 流式传输视频。如您所见,该 url 没有扩展名;但是,在有效负载上设置了标头以指示响应是视频。

HTTP 响应头

虽然链接导致视频在桌面 Safari 和 Chrome 中播放良好,但它不会AVPlayer在我们的应用程序中通过 iOS 播放。是否有一些特定的格式AVPlayer

video ios mime-types avplayer avplayerviewcontroller

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

使用 AVPlayerViewController 时如何检测用户选择的字幕

使用 时AVPlayerViewController,用户可以选择字幕是使用特定语言off,还是设置为auto。设置requiresFullSubtitles属性我可以强制显示字幕,但这不是我想要的。

有没有办法检测用户为字幕设置选择了什么,是选择了语言off,还是auto

正在播放信息中心

ios avplayerviewcontroller tvos

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