小编Mar*_*tin的帖子

如何使用 AVPlayerViewController 检测播放控件显示的切换?

我想知道是否可以检测播放控件何时从 AVPlayerViewController 视图中出现或消失。我正在尝试在我的播放器上添加一个 UI 元素,该元素必须遵循播放控件显示。仅在显示控件时出现,否则消失

我似乎没有找到任何可以在 AVPlayerViewController 上观察到的值来实现这一点,也没有任何回调或委托方法。

我的项目在 Swift 中。

ios avplayer swift avplayerviewcontroller

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

是否可以使用 swiftUI 在 watchOS 上隐藏数字皇冠指示器

我已经使用 Apple Watch 和 swiftUI 一段时间了,但我遇到了一些问题。

我希望在手表屏幕上不显示指示器的情况下访问数字表冠旋转值。我使用 swiftUI 连接到表冠没有问题,但我似乎无法隐藏或删除它所链接的指示器。

截至今天,我的代码是:

struct TestView: View {
@State var scrollAmount = 0.0

var body: some View {
            containerView
                .focusable(true)
                .digitalCrownRotation($scrollAmount,
                                      from: 0,
                                      through: 1,
                                      by: 0.05,
                                      sensitivity: .low,
                                      isContinuous: false,
                                      isHapticFeedbackEnabled: true)
       }
    }
Run Code Online (Sandbox Code Playgroud)

容器视图是视图的通用名称,但不是滚动视图,因此我无法应用(showsIndicators: false). 正如我所说,接收scrollAmount 上的值没有问题。但每次旋转表冠时,屏幕上都会弹出指示器。我尝试设置,.accentColor(.clear)但它什么也没做,并且指示器仍然显示为绿色。

我错过了什么或者做错了什么吗?我不知道如何告诉系统不要显示皇冠指示器。

欢迎任何帮助或提示。

user-interface swift apple-watch watchos swiftui

8
推荐指数
0
解决办法
403
查看次数

实施 AVAssetDownloadURLSession 以下载 HLS 流时出错

我正在尝试为流应用程序实现离线模式。目标是能够在用户的设备上下载 HLS 流,以便即使在用户离线时也能观看流。

我最近偶然发现了这个教程。它似乎回答了我试图实施的确切要求,但我在尝试使其工作时遇到了问题。

我创建了一个小的 DownloadManager 来应用教程的逻辑。这是我的单身课程:

import AVFoundation

class DownloadManager:NSObject {

static var shared = DownloadManager()
private var config: URLSessionConfiguration!
private var downloadSession: AVAssetDownloadURLSession!

override private init() {
    super.init()
    config = URLSessionConfiguration.background(withIdentifier: "\(Bundle.main.bundleIdentifier!).background")
    downloadSession = AVAssetDownloadURLSession(configuration: config, assetDownloadDelegate: self, delegateQueue: OperationQueue.main)
}

func setupAssetDownload(_ url: URL) {
    let options = [AVURLAssetAllowsCellularAccessKey: false]

    let asset = AVURLAsset(url: url, options: options)

    // Create new AVAssetDownloadTask for the desired asset
    let downloadTask = downloadSession.makeAssetDownloadTask(asset: asset,
                                                             assetTitle: "Test Download",
                                                             assetArtworkData: nil, …
Run Code Online (Sandbox Code Playgroud)

offline download http-live-streaming ios swift

5
推荐指数
0
解决办法
1993
查看次数

如何禁止 AVPlayer 切换到 HLS 流中的仅音频轨道

我担心的主要来源来自我用来在我的应用程序中播放视频的 m3u8 清单。它们包含带有音频和视频的变体,有些只包含音频。

当我在 avplayercontroller/avplayer 中加载这种类型的清单而网络不好或带宽低时,就会出现问题。在任何情况下,avplayer 都会切换到没有视频的轨道以清除一些带宽,导致播放器上没有图像。我想知道是否有办法强制 avplayer 或 avplayercontroller 只关注包含音频和视频的清单轨道,并禁止选择、加载和播放仅音频轨道。

在此先感谢您提供有关此主题的任何提示或指示。

http-live-streaming ios avplayer swift swift4

5
推荐指数
0
解决办法
207
查看次数

架构 x86_64 的未定义符号测试我的 ViewController Swift

我实际上是在尝试使用灵活快照在我的应用程序中实现 UI 测试。我正面临一个我不太了解的问题。我一直在环顾四周,但似乎没有找到我的问题的答案。

当我尝试实例化我的视图控制器以尝试测试与其关联的视图时,我的问题出现了。编译总是失败并显示此错误消息。

Undefined symbols for architecture x86_64:
"__T06medici19LoginViewControllerCMa", referenced from:
__T013mediciUITests13LoginViewTestC4specyyFyycfU_yycfU_ in 
testUILogin.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我的测试代码如下所示:

import Nimble
import Nimble_Snapshots
import Quick
import UIKit

@testable import XXXXMyProject

class LoginViewTest: QuickSpec {

override func spec() {

    describe("LoginView") {
        var vcLogin: LoginViewController!

        beforeEach {
            let storyboard = UIStoryboard(name: "Account", bundle: nil)
            vcLogin = storyboard.instantiateViewController(withIdentifier: "LoginViewController") as! LoginViewController
            _ = vcLogin.view // …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift swift4 xcode9

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

Xcode 14:自定义模板不会出现在 Swift 包文件创建中

我有点为难了。我为 Xcode 项目创建了自定义文件模板。

在正常的项目环境中,当我访问New file创建弹出窗口时,我的自定义模板就会出现,如下面的屏幕截图所示

在此输入图像描述

这些模板位于以下公共路径:/Users/XXXX/Library/Developer/Xcode/Templates

当我处理 swift 包时会出现这个问题。当我尝试创建新文件时,弹出窗口界面非常不同,并且不包含我的自定义模板,如下图所示:

在此输入图像描述

我怀疑我应该将模板设置在 swift 包的其他特定位置,但我不知道在哪里。我环顾四周,似乎没有找到任何关于我应该在哪里设置自定义内容的参考Swift Packages

我正在寻找有关此事的任何提示。或者任何可以为我提供有关如何解决问题的线索的信息。

先感谢您。

xcode templates swift swift-package-manager swift-package

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