2012-02-25 9 views
0

IOS devの新機能で、iPad2(Xcode 4.2プロジェクト、ARC /ストーリーボード対応)でサウンドを再生するAVAudioplayerをテストしています。シミュレータでサウンドが正常に再生され、エラーは発生しません。デバイスにエラーはありませんが、サウンドはありません。AVAudioPlayerがiPad2を再生していない

この素晴らしいリソースの寺院を閲覧してきましたが、ここでのフィードバックに基づいて試したことは何もありませんでした。助けてもらえますか?マイ.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 
{ 
} 

私の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]; 
} 

答えて

0

は、ファイルが実際にmp3形式であることを確認します。ファイルをバンドルにコピーしていて、デスクトップのローカルパスから再生していないことを確認してください。デバイスのボリュームを確認します。プレイコールから戻りBOOLを確認します。これらのすべてが説明可能です。

+0

ファイルは間違いなくmp3で、バンドルされたファイルで、デバイスのボリュームは最大ですが、開始ボタンが適切にリンクされているにもかかわらず、取得できないログはdidstartplayingまたはdidfinishplayingで返されます。 – prk

+0

シミュレータ/デバイスを再起動してみてください。ときには、オーディオが変わったときに、例えばブームのようなアプリを使っているときなど、これが起こる可能性があります。 – user1046037

+0

そのようなことは何でしたか? – Toad

0

音が全く出ませんか?ヘッドフォンを差し込んでも音が出ませんか?内蔵スピーカーで音が聞こえず、ヘッドホンで聞こえる場合は、デバイスの呼び出し音/音量がミュートされていないことを確認してください。横のトグルスイッチを確認します(ミュートと向きのロックが設定されている場合)。ベルは横切らないでください。ボリュームアップボタンを押しているだけで、スピーカーからミュートされていないわけではありません。あなたのiPadにハードウェアの問題がないことを確認するためにYouTubeの動画や音楽ファイルをテストしましたか?

関連する問題