Тип 'строка' не имеет члена 'воспроизведение' - PullRequest
1 голос
/ 14 июня 2019

При попытке построить ксилофон в xcode 10.1, используя swift 4.2 на iOS12, я использовал кнопку для воспроизведения файла .wav и ввел следующий код, но появляется следующая ошибка:

"тип" Строка "не имеет члена" воспроизведение ""

func playSound() {
        guard let url = Bundle.main.url(forResource: "soundName", withExtension: "mp3") else { return }

        do {
            try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [])
            try AVAudioSession.sharedInstance().setActive(true)

            /* The following line is required for the player to work on iOS 11. Change the file type accordingly*/
            player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileType.mp3.rawValue)

            /* iOS 10 and earlier require the following line:
             player = try AVAudioPlayer(contentsOf: url, fileTypeHint: AVFileTypeMPEGLayer3) */

            guard let player = player else { return }

            player.play()

        } catch let error {
            print(error.localizedDescription)
        }
    }

Ответы [ 2 ]

0 голосов
/ 14 июня 2019
func playSound() {

    let soundURL = Bundle.main.url(forResource: selectedSoundFileName, withExtension: "wav")
    do{
        audioPlayer = try AVAudioPlayer(contentsOf: soundURL!)
        audioPlayer.play()
    } catch {

    }
}

Это еще один вариант, который вы можете попробовать!Дайте мне знать, если этот формат работает для вас.Я сам давно создал приложение для ксилофона на курсе Udemy.На мой взгляд, было бы намного проще поместить звуковые файлы прямо в ваш проект и запустить их там, чем извлекать их из любого места.

это самый «быстрый» способ, которым я мог бы реализовать это для вас.

0 голосов
/ 14 июня 2019

Я осматривал StackOverflow и позаимствовал этот кусок кода, который работает, хотя я не знаю, является ли это обычным способом сделать это.

Swift 4.2

import AVFoundation
var player = AVAudioPlayer()

let url = URL(fileURLWithPath: Bundle.main.path(forResource: "note1", ofType: "wav")!)
    do {
        player = try AVAudioPlayer(contentsOf: url)
        player.play()
    } catch {
        print("couldn't load file :(")
    }
...