多媒体的应用

原创 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("解码失误")
    }
    
}




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

Intel CPU 的多媒体指令集

自Intel Pentium MMX 处理器开始,处理器新增SIMD(SingleInstruction MultipleData)多媒体指令集,可把多个批次性的指令组变成单一指令,以提升数据处理能力...
  • jiji262
  • jiji262
  • 2007年11月13日 11:02
  • 1399

Android多媒体详解

1、     MediaPlayer播放音频 2、     SoundPool播放音频 3、     VideoView播放视频 4、     MediaPlayer和SurfaceView播放视频 ...
  • mxcsdn
  • mxcsdn
  • 2016年04月12日 20:51
  • 993

h5多媒体的应用

h5多媒体的应用 1: 熟悉标签属性,方法以及支持的3种音频格式 2: 熟悉标签属性,方法,audio支持的3种视频格式 3: 标签以及在H5App多媒体应用的作用 任务1: 在H5种...
  • DHM00
  • DHM00
  • 2017年01月25日 16:18
  • 297

丰富你的程序,运用手机多媒体

在过去,手机的功能都比较单调,仅仅就是用来打电话和发短信的。而如今,手机在我们生活中正扮演着越来越重要的角色,各种娱乐方式都可以在手机上进行。上班的路上太无聊,可以带着耳机听音乐。外出旅行的时候,可以...
  • u013678930
  • u013678930
  • 2016年03月16日 17:02
  • 893

Android多媒体篇

多媒体接口和娱乐、游戏等业务密切相关,灵活地采用多媒体接口,可以使应用具备更强的吸引力。 1.音频处理         作为多媒体处理的最基本的组成部分,音频处理在移动终端上十分复杂。音频的播放、记录...
  • u011014707
  • u011014707
  • 2015年07月01日 09:28
  • 3085

音频 图像 视频等数据的压缩与存储格式

对于数据压缩的问题:“我们要压缩什么”,我的理解是:对在计算机等多媒体中进行传输的视频、音频、文字、图像等所有信息的存储大小进行压缩。      对于数据压缩的问题:“为什么进行压缩”,我的理解是:...
  • wangyan825
  • wangyan825
  • 2017年03月15日 21:41
  • 224

工程施工中应用多媒体技术

 摘要:采用多媒体技术制作多媒体作品,应用于工程施工生产中,提高施工生产单位应用信息技术的水平,使一些资料整理、技术交流发布工作更加规范化、标准化,取得了极好的经济效益。 关键词:多媒体 信息编辑 采...
  • wli2485
  • wli2485
  • 2007年02月20日 12:07
  • 831

Windows多媒体定时器(精确到1ms) (二)

Windows多媒体定时器(精确到1ms)
  • HK_5788
  • HK_5788
  • 2017年04月15日 21:49
  • 659

HTML5之多媒体标签

audio标签video标签 •音频:不支持时显示 •视频:不支持时显示 •controls属性:属性值与属性名同。可以省略。控制显示默认控制条。 •source标签:用来指定多个音频或视...
  • arvin_top
  • arvin_top
  • 2017年04月22日 19:22
  • 249

多媒体应用

音乐播放:     MediaPlay播放音频:(资源占用量较高、延迟时间较长、不支持多个音频同时播放等。这些缺点决定了MediaPlayer在某些场合的使用情况不会很理想)。     prepa...
  • qgmobile_conghua
  • qgmobile_conghua
  • 2012年09月07日 00:54
  • 295
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:多媒体的应用
举报原因:
原因补充:

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