如何在iPhone的不同类中停止AVAudioPlayer?

时间:2012-11-08 09:45:36

标签: iphone ios avaudioplayer

目前我正在使用文本到语音应用程序,使用FliteTTS来开发它并且工作正常。

Class FliteTTS 

 -(void)speakText
    {
        [audiplayer Play];
    }

    -(void)stopTalking
    {
        [audioPlayer stop];
        [audioPlayer release];
    }

Class B

 -(void)TouchToPlay
    {
        [self runFlite:ScriptDetails.text]; // Play audioplyer in FliteTTS
    }

   -(void)StopPlaying
   {
         FliteTTS *flit = [[FliteTTS alloc]init];
         [flit stopTalking];
   }

然后我试图阻止audioplayer从B类到FliteTTS类,但它没有停止,如何阻止这个?请帮帮我。

先谢谢

2 个答案:

答案 0 :(得分:0)

下面:

-(void)StopPlaying{
     FliteTTS *flit = [[FliteTTS alloc]init];
     [flit stopTalking]; }

你正在制作你的FliteTTS课程的新实例,这不是播放你的音频的实例,所以它不会停止,你可以尝试将你的FliteTTS课程设为单身,这样它就能让你返回一个实例在项目中,这将为您提供播放/停止的访问权限,或者从您想要的任何课程中执行任何其他控制操作。

答案 1 :(得分:0)

每次创建类audiplayer的新实例时,

出现的对象FliteTTS都会被初始化,因此您必须使audiplayer为静态并使用单例来提供对{的访问权限{1}}实例。