AVAudioPlayer не играет iPad2 - PullRequest
       13

AVAudioPlayer не играет iPad2

0 голосов
/ 25 февраля 2012

Новичок в разработке для IOS, я тестирую AVAudioplayer для воспроизведения звука на iPad2 (проект Xcode 4.2, ARC / раскадровка включена).Звук играет нормально в симуляторе и без ошибок.Нет ошибки на устройстве, но нет звука.

Я просматривал этот прекрасный ресурсный храм, но ничто из того, что я пробовал, основываясь на отзывах, не вызвало ничего, кроме оглушительного молчания iPad.Может ли кто-нибудь помочь?Мой .h:

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

@interface ViewController : UIViewController
<AVAudioPlayerDelegate>
{
    AVAudioPlayer *audioPlayer;
    UISlider *volumeControl;
    UILabel *timerLabel;
    NSTimer *playbackTimer;
}
@property (nonatomic, retain) IBOutlet UISlider *volumeControl;
@property (nonatomic, retain) IBOutlet UILabel *timerLabel;
@property (nonatomic, retain) NSTimer *playbackTimer;
@property (nonatomic, strong) AVAudioPlayer *audioPlayer;
-(IBAction) playAudio;
-(IBAction) stopAudio;
-(IBAction) adjustVolume;
@end

Мой .m:

#import "ViewController.h"

@implementation ViewController
@synthesize volumeControl, timerLabel, playbackTimer, audioPlayer;

-(void)playAudio
{
    playbackTimer = [NSTimer scheduledTimerWithTimeInterval:1.0
                                                     target:self
                                                   selector:@selector(updateTime)
                                                   userInfo:nil
                                                    repeats:YES];
    [audioPlayer play];
}

-(void)stopAudio
{
    [playbackTimer invalidate];
    [audioPlayer stop];
}
-(void)adjustVolume
{
    if (audioPlayer != nil)
    {
        audioPlayer.volume = volumeControl.value;
    }
} 

-(void)updateTime
{
    float minutes = floor(audioPlayer.currentTime/60);
    float seconds = audioPlayer.currentTime - (minutes * 60);

    float duration_minutes = floor(audioPlayer.duration/60);
    float duration_seconds = 
    audioPlayer.duration - (duration_minutes * 60);

    NSString *timeInfoString = [[NSString alloc] 
                                initWithFormat:@"%0.0f.%0.0f / %0.0f.%0.0f",
                                minutes, seconds, 
                                duration_minutes, duration_seconds];

    timerLabel.text = timeInfoString;
}


-(void)audioPlayerDidFinishPlaying:
(AVAudioPlayer *)player successfully:(BOOL)flag
{
}
-(void)audioPlayerDecodeErrorDidOccur:
(AVAudioPlayer *)player error:(NSError *)error
{
}
-(void)audioPlayerBeginInterruption:(AVAudioPlayer *)player
{
}
-(void)audioPlayerEndInterruption:(AVAudioPlayer *)player
{
}

my viewDidLoad:

 - (void)viewDidLoad {
        [super viewDidLoad];

        NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                             pathForResource:@"song"
                                             ofType:@"mp3"]];

        NSError *error;
        audioPlayer = [[AVAudioPlayer alloc]
                       initWithContentsOfURL:url
                       error:&error];
        if (error)
        {
            NSLog(@"Error in audioPlayer: %@", 
                  [error localizedDescription]);
        } else {
            audioPlayer.delegate = self;
            [audioPlayer prepareToPlay];
        }

    [super viewDidLoad];
}

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Разве это не играет звуки вообще? Нет звука даже при подключенных наушниках? Если через встроенный динамик просто нет звука, а через наушники - звук, убедитесь, что громкость звонка / звука вашего устройства не отключена. Проверьте тумблер сбоку (если он установлен на отключение звука против блокировки ориентации). Колокол не должен быть зачеркнут. То, что вы нажимаете кнопку увеличения громкости, не означает, что она не заглушена из динамика. Вы проверяли видео или музыкальные файлы YouTube, чтобы убедиться, что у вашего iPad нет проблем с оборудованием?

0 голосов
/ 25 февраля 2012

Убедитесь, что файл действительно имеет формат mp3.Убедитесь, что вы копируете файл в пакет, а не воспроизводите локальный путь на рабочем столе.Проверьте громкость устройства.Проверьте возврат BOOL от воспроизведения вызова.все это возможные объяснения.

...