音频播放器循环多次运行

Posted

技术标签:

【中文标题】音频播放器循环多次运行【英文标题】:Audio Player loop running multiple times 【发布时间】:2011-01-24 06:38:12 【问题描述】:

我正在开发电子书阅读器。有一些音频文件需要在单击图标时播放。音频第一次播放良好。但是当我按下应用程序的主页按钮并返回音频播放器时,音频正在播放两次。每次按下主页按钮并返回音频播放器时,数字都会增加 1。使用调试器我发现这个循环运行了多次。谁能解释它为什么会这样?

-(void)StartPlayingFileWithNotification:(NSNotification *)notifcation
// Load the array with the sample file
NSString *f = [[notifcation userInfo] valueForKey:@"audiopath"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: f];
if(fileURL == nil)
    GLogError(@"%@",@"File Not Found");
    return;
else 
    GLogInfo(@"%@",@"Got audio file");

if (self.player != nil) 
    if (self.player.playing) 
        [self.player stop];
    
    [player release];
    player = nil;


self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];  
if (self.player)

    fileName.text = [NSString stringWithFormat: @"%@ (%d ch.)", [[player.url relativePath] lastPathComponent], player.numberOfChannels, nil];
    NSLog(@"The audio file is %@",fileName.text);
    NSLog(@"The file URL is %@",[fileURL description]);

    [self updateViewForPlayerInfo:player];
    player.numberOfLoops = 0;
    player.delegate = self;
    [player play];
    [self updateViewForPlayerState:player];

[fileURL release];

【问题讨论】:

【参考方案1】:

检查您的 @synthesize、成员 var 和 @property 声明。你没有打字错误吗?在任何地方都使用self.player,或者只使用player,但尽量避免将两者混用。

【讨论】:

以上是关于音频播放器循环多次运行的主要内容,如果未能解决你的问题,请参考以下文章

在很短的时间后多次播放音频文件?

如何在一个页面上多次使用音频播放器?

在线时音频播放不佳

将 JS 音量控件附加到多个 Audiojs 音频播放器

HTML5 音频未在 Android 4.0.4 设备本机浏览器中多次播放

为啥我的音频功能一直循环而不是一直运行?