2015-09-10 6 views
10

を受けた後は動作しません。実際には、最初の通話が受信された後でのみ動作します。再現手順は以下のとおりです。SKAction playSoundFileNamedは、私は<strong><em>は、2本の連続した電話を受けた後は動作しません</em></strong>をplaySoundFileNamed理由を把握しようとしています二つの連続電話

  1. スタート電話用のゲーム
  2. 待ちと背景
  3. 電話に行くが、完成している
を前面に戻る
  • (辞退または発信者によって中断します)

    その後、からtouchesBeganのサウンドが再生されます。

    上記の手順を繰り返すと(最初の手順はスキップされます)、touchesBeganからのメカニズムが機能しなくなります。わからないのですが、なぜでしょう...ここで説明した動作を生成することができますコードは次のとおりです。

    @interface GameScene() 
    
    @property (nonatomic, strong) SKAction *sound; 
    @end 
    
    @implementation GameScene 
    
    -(void)didMoveToView:(SKView *)view { 
        self.sound = [SKAction playSoundFileNamed:@"sound1.wav" waitForCompletion:NO]; 
    } 
    
    -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
        /* Called when a touch begins */ 
        [self runAction:self.sound]; 
    } 
    @end 
    

    私はSOにこれに関連するいくつかの質問があります知っているが、与えられた答えが回避策に関連しています。 私は回避策に興味がありませんが、なぜこれが起こっていますか? AVAudioSessionと何らかの関係がありますか?私はAVAudioPlayerを回避策として使うことができると知っていますが、単純な短い音をたくさん演奏するためにその演奏者がどれくらいか分かりません...

  • +1

    。私は決して解決策を見いだせなかった。私にとっては、それは1つだけの電話を取るだろう。しかし、さらに悪い状況があって、あなたもチェックしたいと思うかもしれません。私はiAdを使用していたし、(戦争広告のゲームのような)サウンドを持った広告が提示されるたびに、これもplaySoundFileNamedを止めるでしょう:アプリケーションがリニューアルされるまで働いていました。私ができる唯一のことは、ゲームから広告を削除することでした。私は、オーディオを使って広告を取得した場合、すべてのゲームサウンドエフェクトが失敗したというユーザーエクスペリエンスを危険にさらすことはできませんでした。そして、ユーザーが電話しないことを願っていました。 – Brad

    答えて

    2

    SKAction playSoundFileNamedは、背景と前景。それがあなたにこの問題がある理由です。この問題がiOS 9で修正されているかどうかはわかりません。

    回避策としては、興味がありませんが、補完のために1つを含めることにしました。 SKActionの代わりにAVAudioPlayerを使用します。 AVAPには、アプリケーションの状態に基づいて(デリゲートを使用して)停止して開始する機能があります。

    +1

    ええ、playSoundFileNamedはバグのように振る舞います。話す瞬間、私たちはそれを変更するために何もできません。私はこれについてレーダーを埋めることができたと思う。 – Whirlwind

    +0

    iOS9でもテストしました。それは動作していません。 – Whirlwind

    0

    これは、オーディオが混在する場合の問題です。私は、混在したオーディオを有効にすることで、中断、広告ビデオの再生、またはアプリのバックグラウンド中にSpriteKitのオーディオエンジンを停止することがなくなったことがわかりました。私はかなりしばらく前にこれに対処して

    try? AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryAmbient) 
    
    関連する問題