gpt4 book ai didi

ios - AVAudioPlayer 不会播放 mp3 文件

转载 作者:行者123 更新时间:2023-11-29 00:42:30 25 4
gpt4 key购买 nike

当我运行应用程序时,当应用程序播放我的 MP3 文件:“d.mp3”时,我什么也没听到。此文件在 iTunes 中播放正常。

我将 AVFoundation.framework 添加到项目中。将文件“d.mp3”添加到项目中。

添加到 View Controller :

#import <UIKit/UIKit.h>
#import "AVFoundation/AVAudioPlayer.h"

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

// Play an MP3 file:
printf("\n Play an MP3 file");
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
pathForResource:@"d"
ofType:@"mp3"]];
printf("\n url = %x", (int)url );
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc]
initWithContentsOfURL:url
error:nil];
printf("\n audioPlayer = %x", (int)audioPlayer );
[audioPlayer play];
}

输出日志:

Play an MP3 file
url = 3ee78eb0
audioPlayer = 3ee77810

最佳答案

非 ARC

您必须在播放期间保留它,因为它不会保留自己。一旦被释放,它将立即停止播放。

ARC

类中需要持有AVAudioPlayer实例。并在停止播放后释放它。例如,

#import <AVFoundation/AVFoundation.h>

@interface YourController () <AVAudioPlayerDelegate> {
AVAudioPlayer *_yourPlayer; // strong reference
}
@end

@implementation YourController

- (IBAction)playAudio:(id)sender
{
NSURL *url = [[NSBundle mainBundle] URLForResource:@"d" withExtension:@"mp3"];
_yourPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:NULL];
_yourPlayer.delegate = self;
[_yourPlayer play];
}

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
if (player == _yourPlayer) {
_yourPlayer = nil;
}
}

@end

希望对你有帮助

关于ios - AVAudioPlayer 不会播放 mp3 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39111307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com