如何在一个单独的视图中使用相同的媒体播放器播放不同的音频文件 - iphone sdk?

时间:2010-11-13 23:57:25

标签: iphone xcode ios4 nsstring media-player

我一直在努力研究无数个小时,但由于某种原因,我无法理解它,我知道这是一个简单的答案。请帮助!

我有一个带有不同按钮的视图, - (ScrollViewController1)

在一个视图中按下不同的按钮, - (b1ViewController) 此视图包含媒体播放器

简而言之,我无法弄清楚如何让媒体播放器根据第一个视图中按下的按钮播放不同的音频文件。 我试图不为每个按钮用不同的媒体播放器制作不同的视图。

请有人证明这一点,以便我能理解吗?太感谢了。 下面是相关代码 -

(ps-这是标签的一个原因,我不想为了提出一个明确的问题而直截了当地进行过多考虑。)

@implementation ScrollViewController1

- (IBAction)pressedb1view {

    if (thebutton.tag==101) {

        [self performSelector:@selector(dismissb1pop:) withObject:nil afterDelay:0.1];
        b1view.hidesBottomBarWhenPushed = YES;
        [self.navigationController pushViewController:b1view animated:YES];




}

    if (thebutton.tag==102) {

        [self performSelector:@selector(dismissb1pop:) withObject:nil afterDelay:0.1];
        b1view.hidesBottomBarWhenPushed = YES;
        [self.navigationController pushViewController:b1view animated:YES];

}

    if (thebutton.tag==103) {

        [self performSelector:@selector(dismissb1pop:) withObject:nil afterDelay:0.1];
        b1view.hidesBottomBarWhenPushed = YES;
        [self.navigationController pushViewController:b1view animated:YES];

    }


}
等等等......

在包含我有的媒体播放器的下一个视图中 -

#import <UIKit/UIKit.h>
#import <MediaPlayer/MediaPlayer.h>


@interface b1ViewController : UIViewController {

    MPMoviePlayerController *moviePlayer;
    NSURL                                   *movieURL;


}
<。> - .m -

-(void)viewWillAppear:(BOOL)animated {

    [[self navigationController] setNavigationBarHidden:NO animated:YES];


    NSString *urlStr = [[NSBundle mainBundle] pathForResource:@"music1" ofType:@"mp3"];
    NSURL *url = [NSURL fileURLWithPath:urlStr];
    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
    [self.view addSubview:moviePlayer.view];
    moviePlayer.view.frame = CGRectMake(0, 0, 320, 40);  



    [moviePlayer play];

}

修改

我在第一个视图中使用以下内容将文本从第一个视图传递到第二个视图的uilabel -

[b1view changeSiteText:@"im stuck here"];

在第二个视图中我在.h -

中这样做
- (IBAction) changeSiteText:(NSString *)str;

并在.m我这样做 -

- (IBAction) changeSiteText:(NSString *)str{
    lblSiteTxt.text = str;

}

有没有办法为媒体播放器实现类似的方法,???也许正在做

之类的东西
NSString *urlStr = [[NSBundle mainBundle] pathForResource:@"%@" ofType:@"mp3", str];  

我卡住了!!

帮助!

1 个答案:

答案 0 :(得分:0)

你推动视图还是呈现它?

在播放器类中添加一个方法,该方法在传递各种参数时会播放相应的音轨或其他内容。然后不同的IBActions将调用此方法。