通过网址播放音乐

时间:2011-06-15 11:30:49

标签: objective-c qtkit

我想通过网址播放来自互联网的音乐。 我创建了一个简单的项目,其中包含一个带有以下代码的按钮:

NSURL *url = [[NSURL alloc] initWithString:@"http://someURL.mp3"];
NSError **err;
QTMovie *movie = [[QTMovie alloc] initWithURL:url error:err];
[movie play];

它有效,但有一些延迟(我认为因为它在文件完全下载时等待) 那么我需要做的是音乐立即开始播放(例如,当下载了10%的文件时)?

2 个答案:

答案 0 :(得分:1)

如果您可以考虑在应用上显示Quicktime窗口,则可以使用以下代码:

NSString *url = @"http://someURL.mp3";
UIWebView* tempAudioPlayer = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)]; 
[tempAudioPlayer loadHTMLString:[NSString stringWithFormat:@"<iframe frameborder=\"0\" width=\"0\" height=\"0\" src=\"%@\"></iframe>", url] baseURL:nil];
[self addSubview:tempAudioPlayer];

我首先创建一个不会显示的UIWebView。然后我loadHTMLString一个<iframe>,其中我的文件的网址为src值。我把它添加到我看来。 Quicktime会立即出现。

答案 1 :(得分:1)

一旦下载了足够的数据,请使用-[QTMovie autoplay]自动播放音乐。

在你的情况下:

NSURL *url = [[NSURL alloc] initWithString:@"http://someURL.mp3"];
NSError **err;
QTMovie *movie = [[QTMovie alloc] initWithURL:url error:err];
[movie autoplay];

来自QTMovie class reference

  

自动播放方法将QTMovie对象配置为一旦有足够的数据可以开始播放,播放可以不间断地继续播放到电影的结尾。