我有一个 AVPlayerViewController ,里面有一个 AVPlayer ,我需要的是播放器的控件(播放、暂停、时间滑块)永远不会隐藏。现在,在播放视频大约 4 秒后,它们就会隐藏起来,您必须点击屏幕才能再次显示它们。我无法找到解决方案......有什么想法吗?谢谢!
Apple Swift 版本 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)
我想使用 AVPlayer 播放互联网上的视频。但是,下面源列表的 AVPlayer.swift 中发生了错误“super.init(frame:frame)”。
如何使用 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) 我是 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\nimport 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) 我正在使用它播放一个文件AVPlayer,它工作正常。我正在寻找的是,当应用程序播放文件时,只要有足够的缓冲区可用,它就应该播放。目前我注意到,如果文件很大,它会等待更长的时间才能开始播放文件,这意味着它会等到文件加载到缓冲区左右。
有什么想法吗?
我正在尝试使用以下代码从远程下载后播放视频。
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()。但是,当我尝试使用以下代码播放视频时,它不起作用。如何使用数据代表播放视频?
我有 json 文件,其中包含一些单词 URL(带有 .mp3)。有些 URL 无效(或有效,但返回错误,因此我无论如何都无法获取数据)。
我用这个 URL 来播放单词的发音。所以,我分三步走:
所以,首先,我正在准备我的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) 我想使用 AVPlayer 镜像(翻转)视频播放。喜欢:MirrorTube:- https://chrome.google.com/webstore/detail/mirrortube/olomckflnlligkboahmaihmeaffjdbfm/lated?hl=en
我想实现相同的功能。
我尝试更改 CGAffineTransform 但效果不一样。
提前致谢!
我正在尝试设置 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) 我有一个 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 上看到此错误吗?如果是,您找到了解决方法吗?
谢谢你的时间。
我正在构建一个流式传输视频内容的应用程序,例如 TikTok。因此,您可以在表格中滑动视频,当新单元格可见时,视频开始播放。它的效果非常好,除非你将它与 TikTok 或 Instagram 等进行比较。我的视频开始流式传输速度非常快,但并非总是如此,它对网络质量非常敏感,有时即使网络很好,它仍然缓冲太长时间。与 TikTok、Instagram 相比……在相同条件下,他们似乎没有这个问题。我使用 JWPlayer 作为视频托管服务,使用 AVPlayer 作为播放器。我还在将资产分配给 PlayerItem 之前对资产进行异步预加载。所以我的问题是我还能做些什么来加快视频启动速度。在将其上传到流媒体服务之前,我是否需要做一些特殊的视频准备工作?(我也流式传输 m3U8 文件)。是否有一些预设可以实现最佳的流媒体质量和启动速度。提前致谢。