2012-07-24 62 views
1

我正在爲擁有自己收音機的人制作應用程序。 這只是一個流的URL(例如http://stream.domain.com/highquality.mp3) 我已經用AV Foundation框架做了代碼,讓它可以使用簡單的.mp3文件。我可以在iOS上使用AV Foundation Framework流式傳輸.mp3鏈接嗎?

這是我的代碼:

-(IBAction)play { 
if(clicked == 0) { 
    clicked = 1; 
    NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/test.mp3", [[NSBundle mainBundle] resourcePath]]]; 

    NSError *error; 
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 
    audioPlayer.numberOfLoops = 0; 

    [audioPlayer play]; 
    [start setTitle:@"Stop" forState:UIControlStateNormal]; 
} 
else { 
    [audioPlayer stop]; 
    clicked = 0; 
    [start setTitle:@"Start" forState:UIControlStateNormal]; 
} 
} 

我應該怎麼修改?

編輯:上面的代碼真的有效。我需要讓它使用按鈕來播放和停止它。我不想在我的設備上安裝空洞媒體播放器。簡單而美麗..

編輯2:有的人沒有找到我所需要的:我需要修改,讓它以.mp3流(例如如上面流)工作。

+0

播放流是工作或沒有?我用媒體播放器框架實現了我的最後一個應用程序的MP3流,這也很好。 – MrBr 2012-07-24 12:19:04

+0

是的,它的工作..我添加了一個文件:test.mp3在我的應用程序,一切正常.. – 2012-07-24 12:23:59

+0

所以,如果它的作品,你的問題到底是什麼? – 2012-07-24 12:43:00

回答

0

你只需要一個NSURL傳遞給您的播放器對象,以便從那裏

-(IBAction)play { 
if(clicked == 0) { 
    clicked = 1; 

    NSURL *url = [NSURL URLWithString:@"http://www.linktoyourstream.com"]; 

    NSError *error; 
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; 
    audioPlayer.numberOfLoops = 0; 

    [audioPlayer play]; 
    [start setTitle:@"Stop" forState:UIControlStateNormal]; 
} 
+0

嗯我試過了,但不適用於我的流..是否需要流?這是高品質..(更新:也低質量不起作用..) – 2012-07-24 13:21:57

+0

你是如何測試它?嘗試將mp3文件上傳到網絡服務器並調用該文件的URL以確保它不是流 – MrBr 2012-07-24 13:29:36

+0

我使用模擬器對其進行了測試。今天晚上,我可以用設備測試它...我該怎麼做? – 2012-07-24 13:30:52

相關問題