美文网首页
unity 调用objective-c 播放音乐

unity 调用objective-c 播放音乐

作者: UnityAsk | 来源:发表于2016-09-24 11:21 被阅读82次
               //
            //  PTMusicPlayer.m
            //  Unity-iPhone
            //
            //  Created by van on 16/9/24.
            //
            //
    
            #import <AVFoundation/AVFoundation.h>
    
            @interface PTMusicPlayer : NSObject<AVAudioPlayerDelegate>{
                AVAudioPlayer* _audioPlayer;
            }
            - (void)PlayCustomMusic;
            - (AVAudioPlayer *)audioPlayer;
    
            @end
    
            @implementation PTMusicPlayer
            PTMusicPlayer *ptplayer;
            extern "C"{
                
                void PlayMusic(){
                    if(!ptplayer){
                        ptplayer = [[PTMusicPlayer alloc] init];
                        [ptplayer audioPlayer];
                    }
                    [ptplayer PlayCustomMusic];
                }
            }
    
            -(void)PlayCustomMusic{
                [self play];
            }
    
            -(AVAudioPlayer *)audioPlayer{
                if (!_audioPlayer) {
                    NSString *urlStr=[[NSBundle mainBundle]pathForResource:@"1003022.mp3" ofType:nil];
                    NSURL *url=[NSURL fileURLWithPath:urlStr];
                    NSError *error=nil;
                    //初始化播放器,注意这里的Url参数只能时文件路径,不支持HTTP Url
                    _audioPlayer=[[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
                    //设置播放器属性
                    _audioPlayer.numberOfLoops=-1;//设置为0不循环
                    _audioPlayer.delegate=self;
                    [_audioPlayer prepareToPlay];//加载音频文件到缓存
                    
                    if(error){
                        NSLog(@"初始化播放器过程发生错误,错误信息:%@",error.localizedDescription);
                        return nil;
                    }
                    
                    AVAudioSession *session = [AVAudioSession sharedInstance];
                    
                    [session setCategory:AVAudioSessionCategoryPlayback error:nil];
                    
                    [session setActive:YES error:nil];
                    
                }
                return _audioPlayer;
            }
    
            -(void)play{
                if (![_audioPlayer isPlaying]) {
                    [self.audioPlayer play];
                }
            }
            @end

    相关文章

      网友评论

          本文标题:unity 调用objective-c 播放音乐

          本文链接:https://www.haomeiwen.com/subject/lmjxyttx.html