我有一个应用程序记录,然后播放音频文件.目前,音频播放通过耳机扬声器播放.有人能告诉我Swift如何处理编码,以强制音频输出扬声器吗?
下面是我用来播放音频文件的一个实例:
@IBAction func playAudioVader(sender: UIButton) {
playAudioWithVariablePitch(-1000)
}
func playAudioWithVariablePitch(pitch: Float){
audioPlayer.stop()
audioEngine.stop()
audioEngine.reset()
var audioPlayerNode = AVAudioPlayerNode()
audioEngine.attachNode(audioPlayerNode)
var changePitchEffect = AVAudioUnitTimePitch()
changePitchEffect.pitch = pitch
audioEngine.attachNode(changePitchEffect)
audioEngine.connect(audioPlayerNode, to: changePitchEffect, format: nil)
audioEngine.connect(changePitchEffect, to: audioEngine.outputNode, format: nil)
audioPlayerNode.scheduleFile(audioFile, atTime: nil, completionHandler: nil)
audioEngine.startAndReturnError(nil)
audioPlayerNode.play()
}
override func viewDidLoad() {
super.viewDidLoad()
audioPlayer = AVAudioPlayer(contentsOfURL:receivedAudio.filePathURL, error: nil)
audioPlayer.enableRate = true
audioEngine = AVAudioEngine()
audioFile = AVAudioFile(forReading:receivedAudio.filePathURL, error: nil)
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试在ImageView中显示本地存储的.MP3轨道的专辑图片.有谁知道如何在Swift中获取这件艺术品才能实现这一目标?
我找到了这个解决方案(iOS AVFoundation:如何从mp3文件中获取图片?)但是代码是用Objective C编写的.我只是想抓住我的MP3中嵌入的图像并将其显示在我的ImageView中.
我已经查看了MPMediaItemArtwork的API文档,并找到了一个示例,它也完成了我在Objective C中要完成的任务(http://www.codeitive.com/0zHjkUjUWX/not-able-to-get -the-uiimage-from-mpmediaitempropertyartwork.html)但无法提出解决方案.我的代码如下:
import UIKit
import AVFoundation
import MediaPlayer
class ViewController: UIViewController {
let audioPath:NSURL! = NSBundle.mainBundle().URLForResource("SippinOnFire", withExtension: "mp3")
@IBOutlet var artistImage: UIImageView!
@IBOutlet var trackLabel: UILabel!
@IBOutlet var artistLabel: UILabel!
@IBOutlet var sliderValue: UISlider!
var player:AVAudioPlayer = AVAudioPlayer()
@IBAction func play(sender: AnyObject) {
let audioInfo = MPNowPlayingInfoCenter.defaultCenter()
println(audioInfo)
player.play()
//println("Playing \(audioPath)")
let playerItem = AVPlayerItem(URL: audioPath)
let metadataList = playerItem.asset.metadata as! [AVMetadataItem]
for item in metadataList {
if let stringValue = …
Run Code Online (Sandbox Code Playgroud) 我是 Swift 语言的新手,试图在编码时养成健康的编程习惯。
在声明时显式声明变量类型是最佳实践吗?例如:
var str:String = "likeThis"
Run Code Online (Sandbox Code Playgroud)
或者这是可以接受的:
var str= "likeThis"
Run Code Online (Sandbox Code Playgroud) 我想知道是否有一种直接的方式来显示我的音乐播放器正在播放的当前正在播放的MP3文件的图像和标题.我的代码如下,对于这个例子非常简单.我只想使用我在项目中包含的一个.MP3进行测试.
class ViewController: UIViewController {
let audioPath:NSURL! = NSBundle.mainBundle().URLForResource("SippinOnFire", withExtension: "mp3")
@IBOutlet var sliderValue: UISlider!
var player:AVAudioPlayer = AVAudioPlayer()
@IBAction func play(sender: AnyObject) {
player.play()
//println("Playing \(audioPath)")
}
@IBAction func pause(sender: AnyObject) {
player.pause()
}
@IBAction func stop(sender: AnyObject) {
player.stop()
player.currentTime = 0;
}
@IBAction func sliderChanged(sender: AnyObject) {
player.volume = sliderValue.value
}
override func viewDidLoad() {
super.viewDidLoad()
var error:NSError? = nil
player = AVAudioPlayer(contentsOfURL: audioPath!, error: &error)
player.volume = 0.5;
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose …
Run Code Online (Sandbox Code Playgroud) 我正在尝试在播放和暂停图像之间切换我的按钮,当我开始并使用Swift停止滚动条.我的代码:
import UIKit
class ViewController: UIViewController {
@IBOutlet var btnPlayPause: UIBarButtonItem!
var isPlaying = false
var timer = NSTimer()
var count = 0
@IBOutlet weak var lblTime: UILabel!
@IBOutlet var myToolbar: UIToolbar!
@IBAction func btnPlay(sender: UIBarButtonItem)
{
//set the button to animate
self.myToolbar.setItems([self.btnPlayPause], animated: true)
if !isPlaying //if the ticker is not ticking
{
//change the button to a pause button
println("worked")//start the ticker
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("updateTime"), userInfo: nil, repeats: true)
isPlaying = true
}else{ //if …
Run Code Online (Sandbox Code Playgroud) swift ×5
artwork ×2
audio ×1
audio-player ×1
declaration ×1
ios ×1
ios8 ×1
media-player ×1
toggle ×1
toolbar ×1
variables ×1
xcode ×1