0

我有一个问题,因为两天研究更多我无法解决。

我在一个运行流式音频的类中有一个应用程序。在另一个视图中,我有一个带有播客的表格,它将通过 url 打开。

为了利用第一个类的代码创建了一个委托,因此当用户在任何音频播客中播放时,我占用了主类的方法,只是更改了参数(在本例中为 URL)。

委托工作正常,参数传递也是如此。唯一的问题是委托必须实例化主类。

ClassePrincipal *classePrincipal  = [[ClassePrincipal alloc] init];
classePrincipal.delegate = self;

[classePrincipal method];

如果音频已经在主类中运行,实例化为一个新的对象类,它将开始在已经运行的内容之上播放音频 Podcast。

即使在他继续播放播客之前我有一个重要的停留,例如:

- (void) playPodcast {
                  [classePrincipal destroyStreamer];
                  [classePrincipal startStream];

}

destroyStreamer 该方法被正确调用,但由于实例是从头开始创建的 classePrincipal 他没有看到任何正在播放的音频。

有点滚动这个问题,但是有没有办法在不实例化类的情况下调用参数传递 ClassePrincipal 的方法?由于不在内存中分配新对象,我可以查看音频是否正在播放并为他播放。

如果有其他解决方法也谢谢。

4

1 回答 1

0

据我所知,你可能想把这个类变成一个单例。这样,如果它还没有被实例化,如果它已经被实例化,你可以在你的代码中进行一些检查,以在开始新的音频之前停止当前的音频。我发现的一个随机教程是在此处输入链接描述

于 2012-05-29T21:58:02.347 回答