I'm programming an application for the hearing-impaired. I'm hoping to take tracks from the iTunes library, and in my app have a slider for panning. I don't want to use OpenAL (this isn't a game - I repeat this is a media player). So since AVAudioPlayer has the easy pan method, can I take selections from the MPMediaPicker and feed them into the AVAudioPlayer so I can pan them?
2 回答
我不做很多iOS开发,但我相信有两种方法。
方法 #1 您需要在 Xcode 和 #import AVAudioPlayer.h 中将 /System/Library/Frameworks/AVFoundation.framework 添加到您的目标,并且您需要在 Xcode 和 #import 中将 MediaPlayer.framework 添加到您的目标。
对于此操作,您需要 MPMediaPicker 将歌曲数据传递给 AVAMedia Player。可以这样完成:
@interface MusicPlayerDemoViewController : UIViewController <MPMediaPickerControllerDelegate> {
...
}
...
// This action should open the media picker
- (IBAction)openMediaPicker:(id)sender;
@end
// MusicPlayerDemoViewController.m
- (IBAction)openMediaPicker:(id)sender {
MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic];
mediaPicker.delegate = self;
mediaPicker.allowsPickingMultipleItems = NO; // this is the default
[self presentModalViewController:mediaPicker animated:YES];
[mediaPicker release];
}
// Media picker delegate methods
- (void)mediaPicker: (MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {
// We need to dismiss the picker
[self dismissModalViewControllerAnimated:YES];
(代码在下面继续,空白供您填写)
此时,调用 AVAAUDIOPLAYER 类并告诉它播放 mediaItemCollection。请记住在播放之前停止音频,因为它会同时播放多首歌曲。
}
- (void)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker {
// User did not select anything
// We need to dismiss the picker
[self dismissModalViewControllerAnimated:YES];
}
现在,一旦完成,用户需要选择一首新歌曲。您可以在整个过程中创建一个 WHILE 循环,条件是当前时间 >= 持续时间(来自 AVAAUDIO 播放器),
或者,您可以创建一个按钮来打开选择器
更多问题结帐:
http://oleb.net/blog/2009/07/the-music-player-framework-in-the-iphone-sdk/ (我使用了他们的大部分代码)
祝你好运!
德里克
尝试让 AVAMediaPlayer 播放变量 mediaItemCollection。这是由选择器通过上面的代码指定为歌曲位置的。如果这不起作用,请确保 AVAMediaPlayer 使用与 MpMediaPicker 相同的输入变量类型(格式,如 ID 或文件夹位置)。
该错误消息听起来像是技术问题。我唯一能想到的是 AVAAudio 播放器或 MPmedia 播放器正在寻找一个 Volume 变量(它是必需的?)并且找不到。我不能真正回答这个问题,因为我不做 iPhone 开发,请尝试论坛或网站寻求帮助。
听起来你做得很好!如果您有兴趣,(我不知道您是否留在 DA)Cochran 先生(高年级学生的院长)正在教授 iPhone 开发课程和 AP 计算机科学课程(我在)。如果你想更进一步,或者你只想问问题,我知道他也很高兴!
祝你好运!完成后告诉我,以便我测试结果!