2

AVAudioPlayer を使用してボタンを押すと、曲のクリップを再生しようとしています。クリップ全体が Xcode で正常に再生されますが、アプリをデバイスにロードしてボタンを押すと、曲の最初の 1 秒が再生されてから静かになります。

私はこれをviewDidLoadの下に持っています:

NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/Song.aiff", [[NSBundle mainBundle] resourcePath]]];

player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&audioFileError];
player.numberOfLoops = -1;

そして、これはボタンが押されたとき:

if (player == nil)
    NSLog(@"Audio file could not be played");
else
    [player play];

編集: オーディオ クリップの再生方法に関する他の提案も受け付けています。AVAudioPlayer は、最も簡単で簡単な方法のように思えました。

4

2 に答える 2

3

AVAudioPlayer をインスタンス化した後、これがありません。

[self.player prepareToPlay];

このメソッドは、再生用のバッファを準備します。

またself、変数を参照するときにも使用します。これにより、ivar を直接ではなく、アクセサー メソッドを介してインスタンス変数に適切にアクセスできます。

于 2012-08-02T19:10:42.240 に答える
1

8viusのおかげで修正されました。

[player prepareToPlay];

numberOfLoops 行の後、それは魅力のように機能します。

于 2012-08-02T19:08:28.110 に答える