多媒体的应用

原创 2015年11月19日 17:20:37

首先要提一下沙盒,因为在音频的录制过程当中,ios把他放在了沙盒中的document文件目录下,所谓沙盒,也就是应用程序只能访问自己的文件,而不能翻过墙去访问其他的应用程序的文件,恰恰提现了苹果的闭源

http://blog.csdn.net/totogo2010/article/details/7669837

主要学习一下多媒体的播放声音 和播放视频等的应用

首先先下载一段音乐 随后直接拖入到文件 进行拷贝 随后再sb中添加三个按钮 为play pause 和stop为三种状态 随后添加头文件  为3个按钮指定动作

代码如下


import UIKit
//导入播放媒体的类
import AVFoundation
class ViewController: UIViewController {
//初始化播放的对象
    var player = AVAudioPlayer()
    override func viewDidLoad() {
        //加载Player
        do { try player = AVAudioPlayer(contentsOfURL: NSURL(fileURLWithPath:NSBundle.mainBundle().pathForResource("泡沫", ofType: "mp3")!))
        }
        catch{
            print("加载失败")
        }
      super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        }
         override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
            }
    @IBAction func play(sender: UIButton) {
        //播放
        player.play()
    }
    @IBAction func pause(sender: UIButton) {
    //暂停
        player.pause()
    }
    
    @IBAction func stop(sender: UIButton) {
        //停止 
        player.stop()
        //返回最开始 
        player.currentTime = 0
    }
}
随后便可以播放声音了

以上主要输用来呈现短音乐的,较长的音乐可以使用音乐播放器

添加一个playSound的按钮

为其添加事件

//导入音乐播放器的库
import MediaPlayer

@IBAction func playSong(sender: UIButton) {
        //加载音乐播放器
        var mediaPlayer = MPMoviePlayerViewController(contentURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("泡沫", ofType: "mp3")!))
        //加载音乐播放器的视图 是一个viewcontroller
        presentViewController(mediaPlayer, animated: true, completion: nil)
    }

随后点击按钮会出现一个音乐播放器的界面

@IBAction func playSong(sender: UIButton) {
        //加载音乐播放器
        var mediaPlayer = MPMoviePlayerViewController(contentURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("泡沫", ofType: "mp3")!))
        //加载音乐播放器的视图 是一个viewcontroller
        presentViewController(mediaPlayer, animated: true, completion: nil)
    }


播放库音乐播放器,由于该操作是要在手机上模拟的,因此,只给出代码吧

import UIKit
//导入播放媒体的库
import AVFoundation
//导入音乐播放器的库
import MediaPlayer
class ViewController: UIViewController,MPMediaPickerControllerDelegate {
//获取音乐
    var picker = MPMediaPickerController()
//播放音乐
    var player = MPMusicPlayerController()
    
        override func viewDidLoad() {
                    //进行初始化
            picker = MPMediaPickerController(mediaTypes:MPMediaType.Music)
            //指定处理器
            picker.delegate = self
            //可以选择多个
            picker.allowsPickingMultipleItems = true
            //在选择音乐的程序退出后还能播放音乐
            player = MPMusicPlayerController.iPodMusicPlayer()
      super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        }
         override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
            }
    //有选择到一些内容
    func mediaPicker(mediaPicker: MPMediaPickerController, didPickMediaItems mediaItemCollection: MPMediaItemCollection) {
        //将选择到后的选择歌曲的界面取消掉
        mediaPicker.dismissMoviePlayerViewControllerAnimated()
        //选择到后 可以进行播放的操作
        player.setQueueWithItemCollection(mediaItemCollection)
        player.play()
        print("\(mediaItemCollection)")
        //获取音乐相关的信息
        //获取音乐的名字
       var firstName =  mediaItemCollection.items[0].valueForProperty(MPMediaItemPropertyTitle)
        print("\(firstName)")
        
    }
    //取消掉一些值
    func mediaPickerDidCancel(mediaPicker: MPMediaPickerController) {
        print("cancel")
        mediaPicker.dismissMoviePlayerViewControllerAnimated()
    }
    }
import UIKit
//导入播放媒体的库
import AVFoundation
//导入音乐播放器的库
import MediaPlayer
class ViewController: UIViewController{
//录音的初始化
    var avRec = AVAudioRecorder()
//录音的存取文件路径的初始化 为nsurl
    var audioFileUrl:NSURL!
        override func viewDidLoad() {
          //文件路径的初始化
            audioFileUrl = (NSFileManager.defaultManager().URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.AllDomainsMask)[0] as NSURL).URLByAppendingPathComponent("rec")
            do {try avRec = AVAudioRecorder(URL: audioFileUrl, settings:avRec.settings )
            }
            catch{
            print("出错")
            }
            
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        }
         override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
            }
    @IBAction func start(sender: UIButton) {
        avRec.record()
    }
    
    @IBAction func stop(sender: UIButton) {
        avRec.stop()
    }
    
    @IBAction func pause(sender: UIButton) {
        avRec.pause()
    }
        }

录制音频的较好的两个网站

http://www.tuicool.com/articles/6V3YFv

http://ningandjiao.iteye.com/blog/1904117

还有音乐播放器的代理,表示音乐播放器当停止播放 或者在解码的过程中出现失误的回调操作

import UIKit
import AVFoundation
class ViewController: UIViewController,AVAudioPlayerDelegate {
var player = AVAudioPlayer()
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        player.delegate = self
    //表明播放的路径
    let path = NSBundle.mainBundle().pathForResource("小幸运", ofType: "mp3")
        do { player = try AVAudioPlayer(contentsOfURL: NSURL(string: path!)!)
        }
        catch{
            print("error")
        }
    //播放音频
        player.play()
    //在指定什么时间开始播放
        player.playAtTime(NSTimeInterval(29))
        //暂停
        player.pause()
        //预处理播放设备
        player.prepareToPlay()
        //播放的音量
        print(player.volume)
        //循环的次数 -1表示不循环
        player.numberOfLoops = -1
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    func audioPlayerBeginInterruption(player: AVAudioPlayer) {
        print("当播放器中断时回调,比如打进电话")
    }
    func audioPlayerEndInterruption(player: AVAudioPlayer, withFlags flags: Int) {
        print("中断结束")
    }
    func audioPlayerDidFinishPlaying(player: AVAudioPlayer, successfully flag: Bool) {
        print("播放结束")
    }
    func audioPlayerDecodeErrorDidOccur(player: AVAudioPlayer, error: NSError?) {
        print("解码失误")
    }
    
}




版权声明:本文为博主原创文章,未经博主允许不得转载。

浅析HTML5在多媒体上的应用前景

  • 2011年12月10日 15:12
  • 423KB
  • 下载

多媒体的教程和应用的基础知识

  • 2013年06月15日 18:57
  • 34.43MB
  • 下载

Android开发_多媒体的简单应用

SoundPool类 SoundPool类适合用来播放一些短暂的反应速度要求高的声音。SoundPool载入音乐文件使用了独立的线程,不会阻塞UI主线程的操作。SoundPool类支持同时播放多个音效...

高清音视频编解码技术应用与数字多媒体的关系

在互联网的日益发展,人们对现有通信网络条件下的多媒体服务提出了更高的要求,如更高质量要求的可视电话和视频会议、数字电视,具有更高清晰度的视频存储和播放。我们知道数字化了的影音数据量非常庞大,如何将影音...

html5中多媒体的应用

1)video元素的属性: autoplay——如果存在,此属性会使浏览器尽可能立即开始播放视频; preload="none"——用户开始播放视频之前不会载入视频; preload...
  • rkyy111
  • rkyy111
  • 2015年07月26日 08:11
  • 87

HTML中多媒体的应用

关于多媒体的定义不再赘述,图像、音视频、电影、动画都属于多媒体。 第一代浏览器仅支持单一字体、单一颜色的文本,之后的浏览器开始支持多种字体,多种颜色以及图像。 各主流浏览器对音频、视频、动...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:多媒体的应用
举报原因:
原因补充:

(最多只允许输入30个字)