3

さまざまな時間にさまざまな音を再生しようとしています。ボタンの押下やタイマーのタイムアウトなどに基づいています。コードは次のとおりです。

サウンド機能を再生するには:

-(void)myPlaySound:(NSString *)mySoundFile NumberOfLoops:(int)loopsCount ofType:(NSString *)fileType
{


NSURL* musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                           pathForResource:mySoundFile
                                           ofType:fileType]];

myAudio  = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];

myAudio.volume = audioVolume;

myAudio.delegate = self;

myAudio.numberOfLoops = loopsCount;
[myAudio prepareToPlay];
 [myAudio play];

}

音を止めるには:

    if([myAudio isPlaying]){
        [myAudio stop];
        myAudio.currentTime = 0;
    }

問題: このエラーが発生することがあります: AudioQueue: 1152 フレームを含むバッファーから 0 + 1676 = 1676 フレームをトリムするように要求します

[myAudio play] が呼び出されるとすぐにエラーが発生します。

これに関するヘルプは大歓迎です。

4

2 に答える 2

3

私はこの問題を抱えていました.Raduが言ったように、私が抱えているように見える問題は、すでに再生されているサウンドを再生しようとすることでした. 音が入れ替わっても大したことはないと思いますが、再生中の音を再生しようとしないように気をつけてください。

于 2013-01-02T23:23:17.827 に答える
3

少し遅れてチャイムが鳴りますが、問題が解決していない場合は、これが役立つかもしれません.

myAudioプレイする前に停止するとmyAudio、問題を解消できます。

だからあなたが持っている場所:

    myAudio.numberOfLoops = loopsCount;
    [myAudio prepareToPlay];
    [myAudio play];

次のように変更してみてください。

    [myAudio stop];
    myAudio.numberOfLoops = loopsCount;
    [myAudio prepareToPlay];
    [myAudio play];
于 2014-04-30T17:44:06.427 に答える