Как воспроизводить разные аудиофайлы с помощью одного медиаплеера в отдельном представлении iphone SDK? - PullRequest
0 голосов
/ 14 ноября 2010

Я пытался и исследовал в течение бесчисленных часов, но по какой-то причине я просто не могу обдумать это, и я знаю, что это простой ответ.Пожалуйста, помогите!

У меня есть представление с разными кнопками, - (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 голосов
/ 14 ноября 2010

Вы выдвигаете представление или представляете его?

Добавьте метод в класс проигрывателя, который при передаче различных аргументов воспроизводит соответствующий трек или что-то еще.Тогда разные IBActions будут вызывать этот метод.

...