<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
    主站蜘蛛池模板: 四虎永久在线精品免费观看视频| 久久久久国色AV免费观看| 99精品视频免费在线观看| 亚洲啪啪AV无码片| A级毛片成人网站免费看| 亚洲熟妇中文字幕五十中出| av电影在线免费看| 国产亚洲成人久久| 97国免费在线视频| 亚洲第一福利网站| 51在线视频免费观看视频| 亚洲乱码中文论理电影| 日韩一区二区a片免费观看| 亚洲性线免费观看视频成熟| 白白国产永久免费视频| 国产av无码专区亚洲av毛片搜| www国产亚洲精品久久久日本| 污视频网站免费在线观看| 国产中文在线亚洲精品官网| 玖玖在线免费视频| 亚洲w码欧洲s码免费| 成人免费无码大片a毛片软件 | 国产黄色免费观看| 人人狠狠综合久久亚洲88| **俄罗斯毛片免费| 亚洲AV电影天堂男人的天堂| 亚洲中文无韩国r级电影| 在线观看免费中文视频| 亚洲熟伦熟女专区hd高清| 日批日出水久久亚洲精品tv| 中国一级特黄高清免费的大片中国一级黄色片| 亚洲人成在线播放网站| 四虎免费影院ww4164h| 免费夜色污私人影院网站电影| 亚洲成色在线综合网站| 处破痛哭A√18成年片免费| eeuss影院免费直达入口| 亚洲国产精品网站久久| 亚洲Av无码乱码在线播放| 一级毛片免费播放| 激情吃奶吻胸免费视频xxxx|