2015-09-20 14 views
9

私は次のコードを使用してサイレントモードでサウンドを再生しようとしています:プレイ音のiOS 9(Xcodeの7、スウィフト2.0)で

try! AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, withOptions: .MixWithOthers) 
try! AVAudioSession.sharedInstance().setActive(true) 
AudioServicesPlayAlertSound(1005) 

他の回答によると、Appleのドキュメンテーション私はこれがうまくいくはずだと思ったが、サイレントモードではiOS 9でサウンドを再生しない。サイレントモードではないときに再生します。アップルのドキュメントから:

AVAudioSessionCategoryPlayback - 再生のみ。画面がロックされ、リング/サイレントスイッチが無音に設定されていても音声を再生します。オーディオの再生が最も重要なアプリの場合は、このカテゴリを使用します。

ここに何かが見つからない、またはこれを動作させるための他の/新しい方法がありますか?

+3

私はそれが動作しません願っています。私は私の携帯電話を静かなモードで置くなら、私はアプリが音を出させたくない。これがサイレントモードのポイントです。 – rmaddy

+2

Appleのドキュメントから、これが可能であるはずです。そして私はそれがプライマリの重要性を持っているので、電話がサイレントモードになっているときに再生するタイマーアプリのためにそれを使用しています。 – lammert

+0

@lammertこれに関連するものは何ですか?私はそれがどのようにios 8で動作するかを提案してください。特にサイレントモードの場合 – Abha

答えて

4

これは私のコードです:

do { 
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, withOptions: AVAudioSessionCategoryOptions.MixWithOthers) 
    } 
catch { 
     // report for an error 
    } 

AudioPlayer.play() 

それは私のiPhone上で動作します。

幸運を祈る!スウィフト3.2

+1

素晴らしい!これはiOS10でも動作します! – demonofthemist

+0

サウンドは私のために再生を続けます。働いていない。 – user3427013

+0

@ user3427013は、このコードではサウンドの再生を維持するはずですか?停止したい場合は、 'AudioPlayer.stop()'を実行してください。 –

0

do { 
     try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: AVAudioSessionCategoryOptions.duckOthers) 
    } 
    catch { 
     // report for an error 
    } 
関連する問題