使用MPMoviePlayerViewController播放音频

时间:2011-08-08 19:11:10

标签: audio mpmovieplayercontroller

参考iOS TabController app ...

Apple文档声明AVAudioPlayer类不支持基于HTTP URL的流式音频。 AVAudioPlayer仅播放iApp中嵌入的音乐,文件://作为网址。

鉴于此,我确实使用MPMoviePlayerViewController来播放它可以处理的这些网络存储的音频/ mp3文件。

这绝对有效。我开始用UIView和歌曲的歌词。在这个UIView的最底部是一个“播放”按钮。用户点击此按钮并播放音频/ mp3;然而,音频/ QuickTime((Q))图形到达前景并且歌词消失并且将保持不变直到用户点击“完成”。我想要发生的是音频/ mp3在后台播放,歌词保持在前面。

顺便说一句,我真的不需要看“完成”按钮,因为用户只需选择另一个标签即可停止音频。

显然,这将转向AV文件的背景是有道理的,因为MPMoviePlayerController对象旨在播放视频,视频应该出现在前面。这是一致的,因为音频也会进入后台..除了我需要一种方法来击败前面的音频/ QuickTime((Q))图形。

我插入代码以确定它是否是音频文件(mp3),而不是视频文件(mp4)。到目前为止一切都那么好......然后如果它是一个音频文件,在我的实际播放段中,我有:

if ( NSClassFromString(@"MPMoviePlayerViewController") )
{
    if (!isAudioFile)
    {
        [senderViewController
         presentMoviePlayerViewControllerAnimated:moviePlayerViewController_];
    }
}

[moviePlayerController_ play];

它实际上是有效的,也就是说,我实际上是在后台听到mp3,前面的歌词和音频/ QuickTime((Q))图形都没有显示......

但是,发生了什么是可怕的,也就是说,“完成”按钮显示在歌词我谈到了某种未知的???那里的信件。

1 个答案:

答案 0 :(得分:0)

以下答案取自对问题的编辑:

if ( NSClassFromString(@"MPMoviePlayerViewController") )
{
    if (!isAudioFile)
    {
        [senderViewController
         presentMoviePlayerViewControllerAnimated:moviePlayerViewController_];
    }
    else
    {
        [moviePlayerController_ setControlStyle:MPMovieControlStyleNone];
    }
}

FWIW,我真的不需要“完成”按钮,因为只要我转到另一个标签,无论是新音乐还是视频,最初播放的音乐都会停止,新的AV文件会启动。