<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    The iPhone SDK’s AVFoundation framework includes AVAudioPlayer, an easy, feature rich, Objective-C based way of playing audio files.

    This tutorial demonstrates how to use AVAudioPlayer. When you’ve finished the tutorial you’ll have created a simple app that plays an MP3 audio file in a loop when the app starts.

    Source/Github

    The code for this tutorial is available on GitHub. You can either clone the repository or download this zip.

    Creating The Project

    Launch Xcode and create a new View-Based iPhone application called AudioPlayer:

    1. Create a new project using File > New Project… from Xcode’s menu
    2. Select View-based Application from the iPhone OS > Application section, click Choose…
    3. Name the project as AudioPlayer and click Save

    Adding The AVFoundation Framework

    In order to use the SDK’s AVAudioPlayer class, we’ll need to add the AVFoundation framework to the project:

    1. Expand the Targets branch in the Groups & Files panel of the project
    2. Control-click or right-click the AudioPlayer item
    3. Choose Add > Existing Frameworks…
    4. Click the + button at the bottom left beneath Linked Libraries
    5. Choose AVFoundation.framework and click Add
    6. AVFoundation.framework will now be listed under Linked Libraries. Close the window

    Next, we’ll import the AVFoundation headers in our view controller’s interface file and set up an AVAudioPlayer instance variable:

    1. Expand the AudioPlayer project branch in the Groups & Files panel of the project
    2. Expand the Classes folder
    3. Edit AudioPlayerViewController.h by selecting it
    4. Update the file. Changes are bold:

    #import <UIKit/UIKit.h>
    #import <AVFoundation/AVFoundation.h>
    @interface AudioPlayerViewController : UIViewController {
    AVAudioPlayer *audioPlayer;
    }
    @end
    

    Adding An Audio File

    We’ll need an audio file for playback. We’ll, unimaginatively, call the fille audiofile.mp3. Add it to the project:

    1. Control-click or right click on the Resources folder in the Groups & Files panel of the project
    2. Select Add > Existing Files… from the context menu
    3. Locate and select the file for import and click Add
    4. Check the Copy items into destination group’s folder (if needed) box and click Add

    Starting Audio Playback

    We’ll start the audio playback in ViewDidLoad:

    1. Uncomment the boilerplate ViewDidLoad method
    2. Update it as follows. Changes are bold:

    - (void)viewDidLoad {
    [super viewDidLoad];
    NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/audiofile.mp3", [[NSBundle mainBundle] resourcePath]]];
    NSError *error;
    audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
    audioPlayer.numberOfLoops = -1;
    if (audioPlayer == nil)
    NSLog([error description]);
    else
    [audioPlayer play];
    }
    

    AVAudioPlayer is initialized with a URL, so we create one whose path points to the audio file in our on-the-phone resources directory. Setting the audio player’s numberOfLoops property to a negative number causes it to loop indefinitely. After configuring the player, we start the playback by sending the play message to the object.

    Remember to release the audioPlayer in dealloc. Changes are bold:

    - (void)dealloc {
    [audioPlayer release];
    [super dealloc];
    }
    

    More Capabilities

    You can adjust the volume of the player, check/set the time played so far and pause or stop playback:

    audioPlayer.volume = 0.5; // 0.0 - no volume; 1.0 full volume
    NSLog(@"%f seconds played so far", audioPlayer.currentTime);
    audioPlayer.currentTime = 10; // jump to the 10 second mark
    [audioPlayer pause];
    [audioPlayer stop]; // Does not reset currentTime; sending play resumes
    

    Finally, you can implement the AVAudioPlayerDelegate protocol to, among other things, be notified when audio finishes playing — perhaps to move onto the next song in a playlist.

    posted on 2010-10-01 21:29 seal 閱讀(380) 評論(0)  編輯  收藏 所屬分類: iPhone
    主站蜘蛛池模板: 暖暖免费高清日本一区二区三区| 亚洲精品无码乱码成人 | 亚洲成人午夜电影| 全免费a级毛片免费看无码| 一级成人a免费视频| 久久久婷婷五月亚洲97号色| 97无码免费人妻超级碰碰夜夜| 免费无码国产在线观国内自拍中文字幕 | 免费在线人人电影网| 亚洲人成网www| 国产一级大片免费看| 日韩免费视频一区二区| 日韩欧美亚洲中文乱码| 亚洲va在线va天堂va不卡下载| 思思99re66在线精品免费观看| a级男女仿爱免费视频| 亚洲人AV在线无码影院观看| 久久精品国产亚洲网站| 亚洲中文字幕无码爆乳AV| 国产成人精品免费视频大| 一个人看的www免费高清| 亚洲最大的成人网| 亚洲爆乳无码专区| 亚洲高清无码专区视频| 黄页网站免费观看| 在线成人精品国产区免费| 美女羞羞视频免费网站| 国产亚洲sss在线播放| 亚洲91av视频| 亚洲综合精品网站| 国产成人免费全部网站| 久久精品国产免费观看| 两性色午夜视频免费播放| 国产亚洲福利精品一区二区 | aa级毛片毛片免费观看久| 亚洲成a人片在线不卡一二三区| 久久久久亚洲av无码专区喷水 | 免费国产成人高清在线观看网站| 免费91麻豆精品国产自产在线观看| 精品久久久久亚洲| 亚洲精品无码中文久久字幕|