2011-11-07 11 views
-1

こんにちは私のサーバー経由でmp3ファイルを再生したい。 http://test.com/hi.mp3httpサーバー経由で音を鳴らすiOS

現時点では、コードはそのコードのディレクトリにあるファイルを再生します。 コードは一度に1つのサウンドしか有効にしません。唯一の1音が一度に再生できるように

- (IBAction)oneSound:(id)sender; { 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"mp3"]; 
    if (theAudio) [theAudio release]; 
    NSError *error = nil; 
    theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&error]; 
    if (error) 
     NSLog(@"%@",[error localizedDescription]); 
    theAudio.delegate = self; 
    [theAudio play]; 


} 

しかし、ここで、このコードは、HTTPサーバを介して音を再生するために私を可能にしますが、私は一度に複数のサウンドを再生することができ、私はセッションでサウンドを必要とします。私には10の音があります。どちらかだけのインタフェースで定義されている、または定義された - 私の提案は、それが(.hファイルで)モジュールレベルで宣言されているように、そのメソッド内で宣言されてからお使いのプレーヤーのためにポインタを移動することです

- (IBAction)oneSound:(id)sender; { 

    AVPlayer *player = [[AVPlayer playerWithURL:[NSURL URLWithString:@"http://www.mysite.com/hi.mp3"]] retain]; 

    [player play]; 

} 
+0

あなたの質問は何ですか? – Till

+0

私はあなたが少しはっきりしている必要があると思います。一度に1つのサウンドしか再生できないようにするには、プレイヤーが作業する必要があると言っていると思いますが、何を起こしたいのかを定義する必要があります。別のサウンドが現在再生されているときに開始された場合はまったく再生できますか? – iandotkelly

+0

2番目のコードでセッションを作成したいのは、サウンドが同時に再生されているからです。私は音を別々に演奏したい。だから、いったんそれが再生するサウンドをタップし、別のサウンドをタップすると、前のサウンドが止まり、もう一方が始まります。 http mp3を使用しています。 –

答えて

0

@propertyとして。その後、別の方法でこのプレーヤーにアクセスできます。その後

あなたが試みることができる別の方法で新しいサウンドに切り替えることを望む:

[player pause]; // stop the player from playing 
[player release]; // free the reference count 
// start a new plaer 
player = [[AVPlayer playerWithURL: 
     [NSURL URLWithString:@"http://www.mysite.com/nextsound.mp3"]] retain]; 

あなたがここに呼んで「保持」と注意する必要があります。 playerWithURLはオートレリースされたオブジェクトを返すので、オートレリースプールのどこかで何をしているかによって異なります。定義に(retain)を含むプロパティを使用しているかどうかによって、ここでretainを呼び出す必要はありません。

関連する問題