在这里编程新手。使用本指南设置我的网页:http://www.appcoda.com/uipageviewcontroller-storyboard-tutorial/
我用来播放音频的代码是:
NSString *path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"mp3"];
theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate = self;
[theAudio play];
我的目标是在按下按钮时播放不同的声音文件,每个声音对应于页码。按钮在整个页面中保持不变,只是尝试更改将每个页面连接到新声音的代码。
答案 0 :(得分:0)
您需要跟踪当前页面。委托方法pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:
将告诉您用户是否更改了页面,以便您可以更新当前页码变量。它看起来像是什么,
-(void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
if(completed)
{
//update variable and play the audio file respectively
}
}
答案 1 :(得分:-1)
您的代码中没有包含足够的信息。但我将解释一种将声音实现到应用程序中的简单方法,然后您可以构建它。
第一: 将AudioToolbox框架导入您的项目。然后,将声音文件拖放到项目中。导航到视图控制器并导入头文件:
#import <AVFoundation/AVFoundation.h>
您的视图控制器标题应类似于:
@interface ViewController : ParentClass {
AVAudioPlayer *_audioPlayer1;
}
然后,我们将声明一个按钮,我们将把它放在故事板上。请记住,IBOutlet通常总是很弱。
@property (weak, nonatomic) IBOutlet UIButton *button1;
- (IBAction)playSound;
现在,在你的播放声音方法中,添加它(希望你已经意识到在故事板中创建一个按钮并链接插座和IBAction):
- (IBAction)playSound
NSString *path = [[NSBundle mainBundle] pathForResource:"nameofsound" ofType:@"wav(or other ext)"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: path];
_audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
[_audioPlayer prepareToPlay];
[_audioPlayer play];
}
现在,对于页面事物:UITableView有一个名为pageViewController:didFinishAnimating:previousViewControllers:transitionCompleted:
的委托。利用它。理论上它看起来会像:
-(void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
}
此时我将所有声音加载到一个数组中,其索引对应于页码