私は音楽用のiPhoneアプリを開発しています。ユーザーがストリーミングで曲や音楽を聴いたり、アプリで音楽をダウンロードしたりできるように、いくつかのオプションをユーザーに提供したいと思います。プログラムでアプリのオーディオファイルをストリーミングする方法を知っています。しかし、アプリでオーディオファイルをダウンロードし、ダウンロード後にオーディオを再生する方法がわかりません。また、ユーザーはダウンロード中にダウンロードを一時停止できます。できますか?誰かが私を案内してくれて、サンプルコードやチュートリアルを教えてくれませんか?もう1つ疑問があります。アプリ内にフォルダーを作成するのを手伝ってもらえますか?私を助けてください。前もって感謝します。
2 に答える
フォルダの作成
すべてのアプリについて、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を使用することをお勧めします。ダウンロード要求を実行するのに最適で、 (要求に応じて) ダウンロードを一時停止するなどの多くのオプションを提供します。
この Web サイトには、ファイルのダウンロードと保存に関する多くのドキュメントが用意されています。このページの「ファイルのダウンロード」セクションをご覧ください。
次のようなことをするだけです:
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 Request またはその他のいずれかからダウンロードできます。
これらのリンクをたどることができます。