音楽用のiPhoneアプリを開発しています。ユーザーにストリーミングによる曲/音楽を聞くことができるように、またはアプリで音楽をダウンロードするを聞くことができるように、ユーザーにいくつかのオプションを提供したいと思います。プログラムでアプリ内のオーディオファイルをストリーミングする方法を知っています。しかし、私はアプリで音声ファイルをダウンロードして再生するダウンロード後の音声の方法がわかりません。また、ユーザーはダウンロード中にダウンロードを一時停止できます。することは可能ですか?誰かが私を案内してくれて、サンプルコードやチュートリアルを教えてくれますか?もう1つ疑問があります。アプリ内にフォルダーを作成するのを手伝ってもらえますか?私を助けてください。前もって感謝します。
フォルダの作成
すべてのアプリについて、Documents Folder
。アプリで使用するファイルはすべてここに保存されます。ここにさらにディレクトリを作成する場合は、次のようにします。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0]; // Get documents folder
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"MyNewFolder"];
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
[[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]; //Create folder if it doesn't already exist
ダウンロード中
インターネットからオーディオファイルをダウンロードする場合は、非同期の方法を検討する必要があります。これは、ダウンロードがバックグラウンドで実行されている間、アプリケーションが処理を続行できることを意味します。
このため、 [〜#〜] asihttprequest [〜#〜] を使用することをお勧めします。 pauseダウンロード(要求どおり)などの多くのオプションを提供して、ダウンロード要求を実行するのに最適です。
Webサイトでは、ファイルのダウンロードと保存に関する多くのドキュメントを提供しています。 this ページのDownloading a Fileセクションをご覧ください。
あなたは次のようなことをするだけです:
NSURL *url = [NSURL URLWithString:@"http://www.fileurl.com/example.mp3"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadDestinationPath:[NSString stringWithFormat:@"%@",dataPath]]; //use the path from earlier
[request setDelegate:self];
[request startAsynchronous];
次に、ASIHTTPRequestが提供するデリゲートメソッドを使用して、進行状況と完了を処理します。
再生中
ファイルの再生は非常に簡単です。それがデバイス上にあり、どこにあるかがわかったら、オーディオプレーヤーにロードするだけです。
AVAudioPlayer を使用してサウンドを再生するための素晴らしいチュートリアルがここにあります。あなたのケースでそれを使用する非常に簡単な例は次のとおりです。
NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audiofile.mp3",dataPath];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
if (audioPlayer == nil)
NSLog([error description]);
else
[audioPlayer play];
はい、AVAudioPlayerを使用してオーディオファイルをダウンロードし、ダウンロードしたファイルを再生できます。ダウンロード時に一時停止する方法が正確にはわかりませんが、オーディオをダウンロードして再生しました。 ASIHTTPリクエストまたはその他からダウンロードできます。
これらのリンクをたどることができます。