小编Unc*_*d82的帖子

使用Swift通过iPhone扬声器强制播放音频文件

我有一个应用程序记录,然后播放音频文件.目前,音频播放通过耳机扬声器播放.有人能告诉我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)

xcode avaudioplayer swift ios8

7
推荐指数
2
解决办法
7274
查看次数

显示.MP3文件的艺术品

我正在尝试在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)

media-player artwork swift

7
推荐指数
2
解决办法
6448
查看次数

在声明时显式声明变量类型是最佳实践吗?

我是 Swift 语言的新手,试图在编码时养成健康的编程习惯。

在声明时显式声明变量类型是最佳实践吗?例如:

var str:String = "likeThis"
Run Code Online (Sandbox Code Playgroud)

或者这是可以接受的:

var str= "likeThis"
Run Code Online (Sandbox Code Playgroud)

variables declaration swift

5
推荐指数
1
解决办法
3268
查看次数

使用Swift显示当前播放.MP3的标题

我想知道是否有一种直接的方式来显示我的音乐播放器正在播放的当前正在播放的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)

audio audio-player artwork ios swift

4
推荐指数
1
解决办法
5626
查看次数

使用Swift在工具栏中切换播放/暂停UIBarButtonItem

我正在尝试在播放和暂停图像之间切换我的按钮,当我开始并使用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)

toolbar toggle uibarbuttonitem swift

1
推荐指数
1
解决办法
3273
查看次数