Ios4 如何解除音频会话

Ios4 如何解除音频会话,ios4,avaudioplayer,avaudiosession,Ios4,Avaudioplayer,Avaudiosession,kAudioSessionProperty_OtherMixableAudioShouldDuck用于允许iPod音频与应用程序音频混合的音频会话类别,指定应用程序产生声音时是否应降低iPod音频的音量。默认情况下,此属性的值为FALSE(0)。将其设置为非零值以启用“回避”。 我们怎么能解开这个?有什么财产吗 提前感谢,, 钱德拉。我有同样的问题,很难让它始终如一地工作。我花了很多时间研究和调试这个,最后打电话给苹果。他们让我看一下面包屑样本代码。我遵循了这个例子,一切都很好 这里的问题是,会

kAudioSessionProperty_OtherMixableAudioShouldDuck用于允许iPod音频与应用程序音频混合的音频会话类别,指定应用程序产生声音时是否应降低iPod音频的音量。默认情况下,此属性的值为FALSE(0)。将其设置为非零值以启用“回避”。 我们怎么能解开这个?有什么财产吗

提前感谢,,
钱德拉。

我有同样的问题,很难让它始终如一地工作。我花了很多时间研究和调试这个,最后打电话给苹果。他们让我看一下面包屑样本代码。我遵循了这个例子,一切都很好

这里的问题是,会话属性和时间等有许多不同的选项。例如,您是设置属性然后取消设置,还是保留属性然后启动和停止会话

这里有一个类似的问题:

以下是苹果的示例代码:


查看@zaphodtx发布的示例代码,一个可能的解决方案是激活和停用当前音频会话

示例中的特定文件是:

例如,在Swift中:

import UIKit
import AVFoundation


class MyController: UIViewController, AVAudioPlayerDelegate{

    var audioPlayer: AVAudioPlayer?

    func viewDidLoad(){
        super.viewDidLoad()
        configureAudioSession()
    }

    func configureAudioSession(){
        let session = AVAudioSession.sharedInstance()
        do{
            try session.setCategory(AVAudioSessionCategoryPlayback, withOptions: [.DuckOthers])
        } catch {
            print(
                "Unable to configure audio session, Attempting " +
                "to activate or deactivate the audio session will "
                "likely not meet your expectations."
            )
            return
        }
        print("Audio Session Configured")
    }

    func activateAudioSession(value: Bool){
        let session = AVAudioSession.sharedInstance()
        try? session.setActive(value)
    }

    func playAudioAtPath(path:String){
        audioPlayer?.stop()
        let url = NSURL(fileURLWithPath: path)

        if let player = try? AVAudioPlayer(contentsOfURL: url){
            activateAudioSession(true)
            print("Playing AVAudioPlayer Sound from path: '\(path)'")
            player.volume = volume
            player.delegate = self
            player.play()
            audioPlayer = player
        } else {
            print("Failed to play AVAudioPlayer Sound from path: '\(path)'")
            audioPlayer = nil
        }
    }

    func audioPlayerDidFinishPlaying(player: AVAudioPlayer, successfully flag: Bool) {
        activateAudioSession(false)
    }
}