Iphone 音频流应用程序代理

Iphone 音频流应用程序代理,iphone,ios4,audiostreamer,Iphone,Ios4,Audiostreamer,我有两件事与AudioStreamer有关,我希望在这里能得到一些线索: 1。我已经设置了一个UITabBarController,在我的Appdelegate中有一个AudioStreamer-对象。有两个视图涉及appDelegate.streamer。看起来,当我发布并分配新的时,我得到了两个会话。我有两个正在运行的音频会话 2.我使用UITableView播放此列表。在didselectrowatinexpath方法中,我使用URL初始化。当用户快速双击或三次单击时。音频会话将启动三次。

我有两件事与AudioStreamer有关,我希望在这里能得到一些线索:

1。我已经设置了一个
UITabBarController
,在我的
Appdelegate
中有一个
AudioStreamer
-对象。有两个视图涉及appDelegate.streamer。看起来,当我发布并分配新的时,我得到了两个会话。我有两个正在运行的音频会话

2.我使用
UITableView
播放此列表。在
didselectrowatinexpath
方法中,我使用URL初始化。当用户快速双击或三次单击时。音频会话将启动三次。尽管我使用了
bool
来防止这种情况。因此,我的肮脏解决方案是将系统设置为休眠一秒钟。这是丑陋的,因为屏幕冻结了一秒钟

谢谢你的提示


Simon

就您的问题而言,听起来您应该将AudioSteamer作为一个单例来实现,因为这将防止创建多个实例,并提供一个单点来控制播放(即:防止多个点击触发多个播放)


有关如何创建singleton类的更多信息,请参阅Apple中的“创建singleton实例”部分。

了解第二点。这是AudioStreamer类的一个bug。此外,这一问题已经解决,代码也已发布。此外,如果这似乎不起作用,那么您可以转到pause方法并添加更多状态,如下所示

-(void)pause
{
    if (state==AS_PLAYING || state==AS_BUFFERING || state==AS_WAITING_FOR_DATA)
    {
       //rest code goes same....
    }
    // rest code goes same....
}

这解决了我同样的问题。希望这也能帮助您……

我的所有子视图都没有拖缆作为对象。只有在appDelegate中才是拖缆对象。所以我想我用的是singleton。@Simon-如果你用的是singleton,那么就不可能有两个实例,也就不可能有“两个正在运行的audiosession”。