16

複数の音を同時に鳴らそうとしています。

私が最初に取ったアプローチは、複数のプレーヤーを作成することでしたが、それは間違っているようです。

複数のオーディオファイルを同時に再生するための最良の方法は何ですか。

それらをAVAssetsにすることによるものですが、この場合、いつでも停止して再生する方法を教えてください。

本当にあなたの助けに感謝します。

AVPlayerが必要な理由は、iPodライブラリからサウンドを取得するためです。

私はついにAppleDevTeamのTechSupportから回答を得ましたが、いくつかのAVPlayerを使用することにしたとき、私は正しい方向に進んでいるようです。

4

4 に答える 4

9

作成したいすべてのサウンドに対して、新しいAVPlayerを作成します。

NSURL *url = [NSURL URLWithString:pathToYourFile];
AVPlayer *audioPlayer = [[AVPlayer alloc] initWithURL:url];
[audioPlayer play];

于 2011-08-21T17:33:53.607 に答える
1

私はここで質問に答えたことがなく、誰もこれに対する答えを待っているかどうかはわかりませんが、ここに私の見解があります...これを試してみてください。うまくいくはずです。現在、12以上の同時オーディオサンプルを再生するために使用しています。何か新しいことをしているとお詫びします。

ボタンを押して、このコードを実行します...

ただし、最初に次のことを行う必要があります。

  1. AVFoundationをプロジェクトにインポートし、#importを.hファイルにもインポートする必要があります。そうすれば、これでサウンドを再生できます。
  2. 「AVAudioPlayer*myAudio;」を入れる必要があります もちろん、上部のどこかに引用符はありません(通常はviewDidLoadの上にあります)。

それならただ...

-(IBAction)playButtonPressed:(id)sender {

    NSURL *yourMusicFile;
    yourMusicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"your_Song_Name" ofType:@"mp3"]];

    myAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil];
    [myAudio play];
    NSLog(@"Button -playButtonPressed- has been pressed!");
}
于 2013-12-22T21:34:47.800 に答える
0

さて、私の解決策は経験から生まれました。必要に応じて、プロジェクトをすばやく作成できます。ただし、スタンフォード大学でMoMuAPIを使用する必要もあります。これには、ファイルを読み取るためのWvInオブジェクトとWvOutオブジェクトの作成が含まれます。これらのオブジェクトのオーディオサンプルは、ファイルを同時に再生するために出力バッファに供給する必要があります。APIはAVFoundationを使用しますが、このプロジェクトではAVFoundationを明示的に使用することはありません。

于 2012-07-25T19:20:05.007 に答える
0

基本的に、他の人が言っていることは、ソースごとにオーディオプレーヤーを作成することを確認してください。

また、あなたがしなければならないことは、すべてのプレイヤーオブジェクトを強く参照することです。

これを行わないと、リリースされて再生が停止します。

この問題は、再生したい最後のソースへの参照のみを保持していたときに発生しました。これは、最後のデータソースしか聞こえないことを意味し、問題は同時再生構成に関係していると思いましたが、実際には、他のプレーヤーの割り当てが解除されたため、再生が停止しました。

 try? AVAudioSession.sharedInstance().setCategory(AVAudioSession.Category.playback, options: .mixWithOthers)
            try? AVAudioSession.sharedInstance().setActive(true)

また、オーディオソースを作成して再生する前に、上記のスニペットを使用しました。

于 2020-12-06T18:12:36.187 に答える