AVPlayerViewController с использованием только аудио AVPlayer
3402 просмотра
2 ответа
Просто начинаю с AVKit, и я пытаюсь воспроизвести звук. Было бы неплохо использовать новый AVPlayerViewController, подробно описанный в разделе « Освоение современного воспроизведения мультимедиа», чтобы у меня был готовый пользовательский интерфейс воспроизведения / паузы / поиска. В основном у меня есть раскадровка с контейнерным представлением, в которое встроен переход к AVPlayerViewController. Тогда я использую:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "embedAudio") {
var playerViewController:AVPlayerViewController = segue.destinationViewController as AVPlayerViewController
playerViewController.player = AVPlayer(URL: NSURL(string: "http://dts.podtrac.com/redirect.mp3/files.serialpodcast.org/sites/default/files/podcast/1420057326/serial-s01-e01.mp3"))
}
}
Он хорошо встраивается и воспроизводится, но у него есть большой черный символ QuickTime, где будет находиться видео. Мне интересно, есть ли способ сделать его более похожим на приложение Музыка или Подкасты.
Автор: davidfmatheson Источник Размещён: 12.11.2019 09:26Ответы (2)
6 плюса
Не используйте AVPlayerViewController , так как это полноэкранный режим, черный ящик, видеоплеер.
Вместо этого создайте свой собственный контроллер представления с, скажем, панелью инструментов и элементами управления, легко доступными в ОС (воспроизведение, пауза, остановка и т. Д.), И подключите их к своему AVAudioPlayer
. Вот как может выглядеть код вашего собственного контроллера представления:
Поддерживать экземпляр игрока
var audioPlayer:AVAudioPlayer!
@IBOutlet weak var playProgress: UIProgressView!
Пример: игра
@IBAction func doPlayAction(_ sender: AnyObject) {
do {
try audioPlayer = AVAudioPlayer(contentsOf: audioRecorder.url)
audioPlayer.play()
} catch {}
}
Пример: Стоп
@IBAction func doStopAction(_ sender: AnyObject) {
if let audioPlayer = self.audioPlayer {
audioPlayer.stop()
}
}
Пример: отслеживание прогресса
func playerProgress() {
var progress = Float(0)
if let audioPlayer = audioPlayer {
progress = ((audioPlayer.duration > 0)
? Float(audioPlayer.currentTime/audioPlayer.duration)
: 0)
}
playProgress.setProgress(progress, animated: true)
}
Я разместил пример записи и воспроизведения с использованием методологии, изложенной в этом ответе.
► Найдите это решение на GitHub и дополнительную информацию о Swift Recipes .
Автор: SwiftArchitect Размещён: 17.11.2015 06:596 плюса
Зачем изобретать велосипед? Просто используйте AVPlayerViewController
«s contentOverlayView
собственность. Здесь вы можете установить изображение обложки альбома или поместить его UIView
между логотипом QuickTime (где будет находиться видео) и элементами управления.
Обратите внимание, что вы должны сделать это после того, AVPlayerViewController
как был представлен, так как его contentOverlayView
свойство будет ноль вprepareForSegue
Вопросы из категории :
- ios Приложение для iPhone в ландшафтном режиме, системы 2008
- ios Как мне дать моим веб-сайтам значок для iPhone?
- ios Как программно отправить смс на айфон?
- ios Как я могу разработать для iPhone, используя машину для разработки Windows?
- swift Как я могу программным образом определить, работает ли мое приложение в симуляторе iphone?
- swift iOS: Convert UTC NSDate to local Timezone
- swift Как установить цель и действие для UIBarButtonItem во время выполнения
- swift Жирный и не жирный текст в одном UILabel?
- audio Звук Питона («Колокол»)
- audio Как я могу воспроизвести звук на Java?
- audio Отключение звука Windows с помощью C #
- audio Как я могу сделать генератор розового шума?
- avfoundation Создание видео из видимого окна или вида
- avfoundation AVFoundation, как отключить звук затвора, когда captureStillImageAsynchronouslyFromConnection?
- avfoundation Making the iPhone vibrate
- avfoundation Захват AV-видео в Objective-C
- avkit Как воспроизводить видео с помощью AVPlayerViewController (AVKit) в Swift
- avkit AVPlayerViewController с использованием только аудио AVPlayer
- avkit Обнаружение событий остановки запуска видео AVPlayer
- avkit Нераспознанный селектор при создании AVPlayer