我有时一直在学习 swift。我制作了一个测试应用程序,可以显示用户手机的电池电量和存储详细信息。现在我正在探索其他可能性。我是否可以显示连接到相应设备的 AirPods 的电池电量?如果有人有任何解决方案或指南,我们将非常感激。
我正在使用此代码来播放音频。我的代码在所有耳机型号的 iOS 14 上运行良好,但当客户将设备更新到 iOS 15 并使用 AirPods Pro 时,不会播放任何音频文件。在其他 AirPods 型号上以及通过 iPhone 扬声器播放音频文件时,一切正常。发生了什么事。如何修复它?
更新:
经过漫长的等待,我收到了 AirPods Pro。起初我删除了那条线setupMediaPlayerNotificationView(true),应用程序播放声音很好。但锁屏上的一些功能被删除了。应用程序中的这一行没有声音。在 App Store 中,我有 3 个具有相同代码的应用程序。ios 15 之后只有一个可以工作。如果代码相同,我无论如何也不明白原因是什么。为什么其他人不工作?但事实证明,运行的应用程序的名称中只有 1 个单词 - Build Settings -> Product Name -> "myAppName"。其余的人也说了几句话。当我将它们重命名为 1 个单词时,一切正常。声音播放得很好。它以前如何?我还是不明白?如果有人有版本,分享一下。
代码:
let url = Bundle.main.url(forResource: "\(masterIndex)0", withExtension: "m4a")!
do {
audioPlayer = try AVAudioPlayer(contentsOf: url)
audioPlayer.delegate = self
audioPlayer.prepareToPlay()
play(sender:AnyObject.self as AnyObject)
setupMediaPlayerNotificationView(true)
lockScreen()
} catch {
}
Run Code Online (Sandbox Code Playgroud)
其他代码:
func lockScreen() {
var albumArtwork : MPMediaItemArtwork!
let image:UIImage = UIImage(named: …Run Code Online (Sandbox Code Playgroud) 我正在尝试检查 AirPods 是否已连接到 iPhone。如何以编程方式检查它?
对于 airpods port.portType 值是 .builtInMic 这不足以检查 airpods 是否连接到 iphone
class func isMicAvailbale() -> Bool{
let availableInputs:[AVAudioSessionPortDescription] = AVAudioSession.sharedInstance().availableInputs ?? []
var micPresent = false;
for port in availableInputs
{
if port.portType == .builtInMic{
micPresent = true
}
}
return micPresent
}
Run Code Online (Sandbox Code Playgroud)