19

私は音楽用のiPhoneアプリを開発しています。ユーザーがストリーミングで曲や音楽を聴いたり、アプリで音楽をダウンロードしたりできるように、いくつかのオプションをユーザーに提供したいと思います。プログラムでアプリのオーディオファイルをストリーミングする方法を知っています。しかし、アプリでオーディオファイルをダウンロードし、ダウンロード後にオーディオを再生する方法がわかりません。また、ユーザーはダウンロード中にダウンロードを一時停止できます。できますか?誰かが私を案内してくれて、サンプルコードやチュートリアルを教えてくれませんか?もう1つ疑問があります。アプリ内にフォルダーを作成するのを手伝ってもらえますか?私を助けてください。前もって感謝します。

4

2 に答える 2

52

フォルダの作成

すべてのアプリについて、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];
于 2012-04-20T12:10:21.310 に答える
0

はい、オーディオ ファイルをダウンロードし、AVAudioPlayer を介してダウンロードしたファイルを再生できます。ダウンロード時に一時停止する方法が正確にはわかりませんが、オーディオをダウンロードして再生しました。ASIHTTP Request またはその他のいずれかからダウンロードできます。

これらのリンクをたどることができます。

  1. http://allseeing-i.com/ASIHTTPRequest/How-to-use#tracking_progress
  2. ASIHttpRequestを利用したダウンロードファイルについて
于 2012-04-20T12:12:22.577 に答える