【问题标题】:Automatically Play audio while showing SwiftUI screen显示 SwiftUI 屏幕时自动播放音频
【发布时间】:2020-05-11 15:39:29
【问题描述】:

我想显示如下的传入屏幕。在显示此屏幕时,我想播放铃声文件 (mp3)。我在窗口对象之前添加了Sound.playSounds(soundfile: "ringing.mp3") 行。但是 mp3 文件没有播放,但功能 playsounds 正在执行。

    DispatchQueue.main.async{
        Sound.playSounds(soundfile: "ringing.mp3")

        let window = UIApplication.shared.windows.first
        let contentView = IncomingCallView(viewNavigator: ViewNavigator())
        window?.rootViewController = UIHostingController(rootView:contentView )
        window?.makeKeyAndVisible()
    }

声音文件如下所示

import AVFoundation

class Sound {

    static var player:AVAudioPlayer?

    static func playaudio(soundfile: String) {

        if let path = Bundle.main.path(forResource: soundfile, ofType: nil){
            print("<<<<<<<<<<<<<<<<<<<<<PATH >>>>>>>>>>>>>>>>>>>>>>>>>",path)
            do{

                player = try AVAudioPlayer(contentsOf: URL(fileURLWithPath: path))
                player?.prepareToPlay()
                player?.play()

            }catch {
                print("<<<<<<<<<<<<<<<<<<<<<Error >>>>>>>>>>>>>>>>>>>>>>>>")
            }
        }
    }
}

【问题讨论】:

  • 你发现了吗?

标签: ios swiftui avaudioplayer swift5


【解决方案1】:

在出现方法上使用

SomeView()
    .onAppear{ Sound.playAudio }

【讨论】:

  • 谢谢。但这对我不起作用。我正在使用 swiftui 创建屏幕。在来电时从 swift (NSobject) 类中,我必须显示带有振铃音频的 swiftui 类。我正在显示像 window?.rootViewController = UIHostingController(rootView:contentView) 这样的来电屏幕,这里没有播放音频。但是我尝试在其他视图的按钮操作中播放此音频,它正在响铃。但音频不仅在 IncomingCallView 屏幕中播放。
  • 正在播放音频,但声音太小。我也尝试设置音量。但没有运气。任何人都对此有任何想法,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-21
  • 1970-01-01
相关资源
最近更新 更多