标签: avplayer

始终显示 AVPlayer 控件

我有一个 AVPlayerViewController ,里面有一个 AVPlayer ,我需要的是播放器的控件(播放、暂停、时间滑块)永远不会隐藏。现在,在播放视频大约 4 秒后,它们就会隐藏起来,您必须点击屏幕才能再次显示它们。我无法找到解决方案......有什么想法吗?谢谢!

uicontrol avplayer swift avplayerviewcontroller

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

如何使用 AVPlayer 播放视频?

Apple Swift 版本 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)

我想使用 AVPlayer 播放互联网上的视频。但是,下面源列表的 AVPlayer.swift 中发生了错误“super.init(frame:frame)”。

线程1:EXC_BAD_ACCESS(代码=2,地址=0x16fc07fe0) 在此输入图像描述

如何使用 AVPlayer 播放视频?如果除了错误之外还有错误的地方,也请告诉我。

AVPlayerView.swift

import Foundation
import UIKit

final class AVPlayerView : UIView {
    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!
    }
    override init(frame: CGRect) {
        super.init(frame: frame)
    }
    override public class var layerClass: Swift.AnyClass {
        get {
            return AVPlayerView.self
        }
    }
Run Code Online (Sandbox Code Playgroud)

}

ViewController.swift

import UIKit
import AVFoundation
import CoreMedia

class ViewController: UIViewController {
    var playerItem : AVPlayerItem!
    var videoPlayer : AVPlayer!

    override func viewDidLoad() {
        super.viewDidLoad()
        let …
Run Code Online (Sandbox Code Playgroud)

avplayer swift

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

Swift Mac OS - 如何在单击按钮时使用 AVPlayer 播放另一个视频/更改视频的 URL?

我是 swift 新手,我正在尝试制作一个 Mac OS 应用程序,在应用程序启动后,使用 AVPlayer 作为窗口背景从应用程序的资源中循环播放视频。当用户选择菜单项/单击按钮时,背景视频将立即更改为与应用程序资源不同的视频,并开始循环该视频作为窗口的背景。

\n\n

一旦应用程序启动,我就能够按照本教程播放第一个视频:(https://youtu.be/QgeQc587w70),并且我还按照这篇文章成功地使视频本身无缝循环:(无缝循环AVPlayer)。

\n\n

我现在面临的问题是,一旦选择了菜单项/单击了按钮,就将视频更改为另一个视频。我想要的方法是更改​​ url 并使用新 URL 创建一个新的 AVPlayer,并将其影响到这篇文章之后的playerView.player:(Swift How to update url of video in AVPlayer when Click on a Button?)。但是,每次选择菜单项时,应用程序都会崩溃并出现错误“线程 1 exc_bad_instruction (code=exc_i386_invop subcode=0x0)”。这显然是由于playerView的值为nil引起的。我不太明白这样做的原因,因为playerView是我使用xib文件创建的AVPlayerView对象,并通过控制拖动链接到swift文件,而且我似乎找不到另一种合适的方法来做到这一点我想做。如果您知道其原因以及解决方法,请向我提供一些帮助,或者如果您知道执行我上面提到的更好方法,也请告诉我。任何帮助将非常感激!

\n\n

我的代码如下,导致应用程序崩溃的行位于底部:

\n\n
import Cocoa\nimport AppKit\nimport AVKit\nimport AVFoundation\n\nstruct videoVariables {\n    static var videoName = "Test_Video" //declaring the video name as a global variable\n}\n\n    var videoIsPlaying = true\n    var theURL = Bundle.main.url(forResource:videoVariables.videoName, withExtension: "mp4") //creating the video url\n    var player = …
Run Code Online (Sandbox Code Playgroud)

macos xcode avplayer swift avplayerview

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

如何让AVPlayer从URL播放mp3而无需等待快速加载整个文件

我正在使用它播放一个文件AVPlayer,它工作正常。我正在寻找的是,当应用程序播放文件时,只要有足够的缓冲区可用,它就应该播放。目前我注意到,如果文件很大,它会等待更长的时间才能开始播放文件,这意味着它会等到文件加载到缓冲区左右。

有什么想法吗?

xcode ios avplayer swift

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

如何使用AVPlayer播放Data类型视频?

我正在尝试使用以下代码从远程下载后播放视频。

let player = AVPlayer(url: URL(dataRepresentation: VideoService.instance.videoInfoArray[0].video, relativeTo: nil)!)
let playerController = AVPlayerViewController()
playerController.player = player
present(playerController, animated: true) {
player.play()
}
Run Code Online (Sandbox Code Playgroud)

我的 VideoService 类是一个单例类,视频变量类型是Data()。但是,当我尝试使用以下代码播放视频时,它不起作用。如何使用数据代表播放视频?

ios avplayer swift

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

如果 URL 快速失败,如何为 AVPlayer 重新加载数据

我有 json 文件,其中包含一些单词 URL(带有 .mp3)。有些 URL 无效(或有效,但返回错误,因此我无论如何都无法获取数据)。

我用这个 URL 来播放单词的发音。所以,我分三步走:

  1. 查找某个单词的 URL。如果找不到,那么什么也不会发生
  2. 使用此 URL 初始化 AVPlayerItem 并准备 AVPlayer。当用户按下时,不仅仅是等待。
  3. 当用户按下单词时播放声音

所以,首先,我正在准备我的AVPlayer,以避免播放延迟。

我对多线程有点困惑,我不明白我应该在哪里检查我是否能够播放这个声音,或者我应该使用下一个 URL。

代码:

extension WordCell {

func playPronunciation() {
    player?.play()
    player?.seek(to: .zero)
}

func prepareForPronunciation() {
    if let word = myLabel.text {
        UIApplication.shared.isNetworkActivityIndicatorVisible = true
        DispatchQueue.global(qos: .userInteractive).async { [weak self] in
            let foundURL = self?.findURL(for: word)
            if let url = foundURL {
                let playerItem = AVPlayerItem(url: url)

                //here "playerItem.status" always equals .unknown (cause not initialized yet)
                if playerItem.status == .failed …
Run Code Online (Sandbox Code Playgroud)

multithreading ios avplayer swift

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

如何使用AVPlayer镜像(翻转)播放视频?

我想使用 AVPlayer 镜像(翻转)视频播放。喜欢:MirrorTube:- https://chrome.google.com/webstore/detail/mirrortube/olomckflnlligkboahmaihmeaffjdbfm/lated?hl=en

我想实现相同的功能。

我尝试更改 CGAffineTransform 但效果不一样。

提前致谢!

mirroring avplayer avplayerlayer swift

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

如何设置AVPlayer的音量

我正在尝试设置 AVPlayer 的音量,但似乎不起作用。它占用系统容量并忽略代码中设置的值。以下是我的代码。我们如何设置音量级别?

let player = AVPlayer(url: URL(string:recordingFileURL)!)
let playerController = AVPlayerViewController()
playerController.player = player
playerController.videoGravity = AVLayerVideoGravity(rawValue: AVLayerVideoGravity.resizeAspectFill.rawValue)

self.present(playerController, animated: true) {
    player.play()
    player.volume = 0.8 // Doesn't have any affect
}
Run Code Online (Sandbox Code Playgroud)

ios avplayer swift

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

AVPlayer 在 tvOS 13.4 上出现 HLS 直播流 URL 失败(适用于 tvOS 13.3)

我有一个 Apple TV 应用程序,可以从 Windows 媒体服务播放 HLS 直播流。这些视频在 tvOS 13.3 上完美播放,但自从在 tvOS 13.4 上进行测试后,当我尝试开始流式传输视频时,我遇到了一个神秘的错误。我使用的 URL 格式是:

https://myhost.streaming.mediaservices.windows.net/{uuid}/{uuid}.ism/manifest(format=m3u8-aapl, audio-only=false)

这是当我尝试使用该 url 加载 AVPlayer 时运行 13.4 的 tvOS 设备的错误输出:

Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed" UserInfo={NSLocalizedFailureReason=An unknown error occurred (-12746), NSLocalizedDescription=The operation could not be completed, NSUnderlyingError=0x6000000c8360 {Error Domain=NSOSStatusErrorDomain Code=-12746 "(null)"}}

我将-12746错误跟踪到此文档,但同样没有太多细节。我还检查了errorLog()播放器项目的 ,但那里什么也没有。

另一件有趣的事情是,当我按照 Apple 的创建基本视频播放器示例时,我可以重现此错误。只需复制并粘贴他们的测试网址,它在 tvOS 13.3 及更低版本上运行良好,但在 tvOS 13.4 上失败并出现上述错误。

有其他人在 tvOS 13.4 上看到此错误吗?如果是,您找到了解决方法吗?

谢谢你的时间。

windows http-live-streaming avplayer avplayeritem tvos

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

快速视频流启动

我正在构建一个流式传输视频内容的应用程序,例如 TikTok。因此,您可以在表格中滑动视频,当新单元格可见时,视频开始播放。它的效果非常好,除非你将它与 TikTok 或 Instagram 等进行比较。我的视频开始流式传输速度非常快,但并非总是如此,它对网络质量非常敏感,有时即使网络很好,它仍然缓冲太长时间。与 TikTok、Instagram 相比……在相同条件下,他们似乎没有这个问题。我使用 JWPlayer 作为视频托管服务,使用 AVPlayer 作为播放器。我还在将资产分配给 PlayerItem 之前对资产进行异步预加载。所以我的问题是我还能做些什么来加快视频启动速度。在将其上传到流媒体服务之前,我是否需要做一些特殊的视频准备工作?(我也流式传输 m3U8 文件)。是否有一些预设可以实现最佳的流媒体质量和启动速度。提前致谢。

video video-streaming ios avplayer swift

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