标签: avfoundation

播放提醒声音 SwiftUI

我知道我可以从自己的库中播放声音,例如: 如何使用 Swift 播放声音?

但如何使用 iPhone 已有的默认提醒声音呢?只需按一下简单的按钮即可将其置于上下文中?

谢谢

avfoundation swift swiftui

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

Swift - AVFoundation - 检查视频尺寸/长宽比

我有一个 iOS 应用程序,目前它只是使用用户库中的 AVFoundation 播放视频。我想做的是根据视频的宽高比设置设备的方向。如果是纵向视频,我想将方向设置为纵向,如果标准 16:9 或 4:3,那么当然是横向,这样屏幕最终不会在黑条中浪费大量空间视频的两侧。

我想我可以通过获取视频的尺寸来确定纵横比,从而确定方向:

if width > height:
    landscape
else:
    portrait
Run Code Online (Sandbox Code Playgroud)

然而,事实证明这比我想象的要困难。我有一个AVPlayer对象,最初查看了它的元数据属性,但这显然不是我想要的元数据。然后我发现 AVPlayer.presentationSize 可以包含我正在寻找的信息,但是当我打印出来时 - 就在调用之前play()- 查看它时,我得到了以下信息:Optional((0.0, 0.0))

除了研究如何自己解析视频文件头以尝试访问此信息之外,API 中是否有任何地方可以向我公开此信息?谷歌搜索提供了大量有关如何在捕获视频时指定视频大小的信息,但关于这个特定问题的信息却很少。

avfoundation ios swift

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

将语音保存到文件 - 缓冲错误 - Swift

去年我问了一个关于如何将语音保存到文件的问题。 堆栈溢出问题 - 将语音合成录制到保存的文件中

感谢 kakaiikaka 的回答。虽然它确实有效,但缓冲时出现了一些错误。以下代码隔离了该问题。在 iOS 16 中,尽管存在错误,但它确实可以按预期工作。我按预期打印的完成处理程序。以下错误打印了 20 次左右。

2023-06-17 15:35:33.811838-0400 RecordSpeechFix [3899:1958883] [AXTTSCommon] TTSPlaybackEnqueueFullAudioQueueBuffer:错误-66686排队缓冲区

iOS 17(第一个测试版)存在一个更具描述性的错误,并且它不起作用。完成处理程序不打印。以下错误打印了 20 次左右。

输入数据过程返回不一致的 512 个数据包(2,048 字节);按每个数据包 2 字节计算,实际上是 1,024 个数据包

我假设这是同一个问题。修复 iOS16 的错误也将修复 iOS17 的错误。我的这个假设可能是错误的。

//
//  ContentView.swift
//  RecordSpeechFix
//
//  Created by Dennis Sargent on 6/16/23.
//

import AVFoundation
import SwiftUI

struct ContentView: View {
    var body: some View {
        VStack {
            Image(systemName: "globe")
                .imageScale(.large)
                .foregroundColor(.accentColor)
            Text("Record Speech")
        }
        .padding()
        .onTapGesture {
            saveSpeechUtteranceToFile(phrase: "This produces warnings.") {
                print("In …
Run Code Online (Sandbox Code Playgroud)

avfoundation ios avspeechsynthesizer swift swiftui

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

设备在后台播放音频,模拟器不播放

问题是这样的:

  • 在设备上运行我的应用程序时,音频在后台播放。
  • 在模拟器上运行我的应用程序时,音频停止在后台播放,并在应用程序再次位于前台时恢复。

我做了以下事情:

  • .plist背景模式是audio.
  • 我在下面调用代码didFinishLaunchingWithOptions

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&error];
[[AVAudioSession sharedInstance] setActive:YES error:&error];
Run Code Online (Sandbox Code Playgroud)

我缺少什么?我检查了这error两种nil方法之后。

avfoundation ios ios6

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

标签 统计

avfoundation ×4

ios ×3

swift ×3

swiftui ×2

avspeechsynthesizer ×1

ios6 ×1