目前我正在从事文本到语音应用程序的工作,使用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类,但它没有停止,如何停止?请帮帮我。
提前感谢
发布于 2012-11-08 18:09:18
这里:
-(void)StopPlaying{
FliteTTS *flit = [[FliteTTS alloc]init];
[flit stopTalking]; }你正在创建你的FliteTTS类的新实例,而这不是播放你的音频的实例,所以不会让它停止,你可以试着让你的FliteTTS类成为单例,这样它就会在整个项目中返回给你一个实例,这样你就可以从任何你想要的类中访问播放/停止或执行任何其他控制操作。
发布于 2012-11-08 18:20:15
每次创建类FliteTTS的新实例时,对象audiplayer都会被初始化,因此必须将audiplayer设为静态,并使用单例来提供对audiplayer实例的访问。
https://stackoverflow.com/questions/13286412
复制相似问题