如何在不使用全屏播放器的情况下流式传输远程mp3?例如Shoutcast的

时间:2009-09-04 07:28:05

标签: iphone streaming mp3

如何在iPhone应用程序中播放远程.mp3,并完全控制播放控件和显示的视觉效果?我知道MPMoviePlayerController可以流式传输.mp3s,但它占据整个屏幕。

如果您能指出适当的指南或课程参考方向,那就太棒了。

2 个答案:

答案 0 :(得分:1)

我不认为AVAudioPlayer支持流式mp3。根据我的经验,我有理由相信它只播放本地文件。

我使用AVPlayer播放了远程mp3。

self.player = [[AVPlayer alloc] initWithURL:fileURL];
//inits the AVPlayer object.
[player addObserver:self forKeyPath:@"status" options:0 context:nil];
// You need to watch for for when the player obeject becomes ready to play, using key-value observation



-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    if(object == player && [keyPath isEqualToString:@"status"])
    {
        playButton.enabled = YES;
        playButton.titleLabel.text = @"Play";
        ..... 
           //do whatever you need to do here to get the object ready to play.

    }
}

一个简单的[播放器播放]将开始播放该文件。

//metadata is available at
player.currentItem.asset.commonMetadata
//and time played can be calculated by dividing x by y
    UInt64 x = self.player.currentTime.value; 
    int32_t y = self.player.currentTime.timescale;
    int secs = x/y;

答案 1 :(得分:0)

您可能想要使用AVAudioPlayer并创建自己的控件。

我不知道MPMediaPlayer是否可以播放流式MP3,但它可以在“app”播放器中播放本地媒体,而不是“ipod”播放器(接管屏幕)。 MPMediaPlayer类似于AVAudioPlayer,您可以使用或不使用任何可以创建的UI进行游戏。播放,暂停,停止,快退,转发等