Skip to content

Commit 38ba464

Browse files
committed
update for Swift 1.2, Xcode 6.3
1 parent e164b6d commit 38ba464

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

bk2ch16p678mediaQuery/ch29p946mediaQuery/ViewController.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,15 @@ class ViewController: UIViewController {
8585

8686
@IBAction func doAllAlbumTitles (sender:AnyObject!) {
8787
let query = MPMediaQuery.albumsQuery()
88-
let result = query.collections as [MPMediaItemCollection]
88+
let result = query.collections as! [MPMediaItemCollection]
8989
// prove we've performed the query, by logging the album titles
9090
for album in result {
9191
println(album.representativeItem.albumTitle)
9292
}
9393
return; // testing
9494
// cloud item values are 0 and 1, meaning false and true
9595
for album in result {
96-
for song in album.items as [MPMediaItem] {
96+
for song in album.items as! [MPMediaItem] {
9797
println("\(song.valueForProperty(MPMediaItemPropertyIsCloudItem)) \(song.valueForProperty(MPMediaItemPropertyAssetURL)) \(song.valueForProperty(MPMediaItemPropertyTitle))")
9898
}
9999
}
@@ -105,7 +105,7 @@ class ViewController: UIViewController {
105105
forProperty:MPMediaItemPropertyAlbumTitle,
106106
comparisonType:.Contains)
107107
query.addFilterPredicate(hasBeethoven)
108-
let result = query.collections as [MPMediaItemCollection]
108+
let result = query.collections as! [MPMediaItemCollection]
109109
for album in result {
110110
println(album.representativeItem.albumTitle)
111111
}
@@ -122,13 +122,13 @@ class ViewController: UIViewController {
122122
comparisonType:.EqualTo)
123123
query.addFilterPredicate(isPresent)
124124

125-
let result = query.collections as [MPMediaItemCollection]
125+
let result = query.collections as! [MPMediaItemCollection]
126126
for album in result {
127127
println(album.representativeItem.albumTitle)
128128
}
129129
// and here are the songs in the first of those albums
130130
let album = result[0]
131-
for song in album.items as [MPMediaItem] {
131+
for song in album.items as! [MPMediaItem] {
132132
println(song.title)
133133
}
134134
}
@@ -141,7 +141,7 @@ class ViewController: UIViewController {
141141
comparisonType:.EqualTo)
142142
query.addFilterPredicate(isPresent)
143143

144-
let shorties = (query.items as [MPMediaItem]).filter {
144+
let shorties = (query.items as! [MPMediaItem]).filter {
145145
let dur = $0.playbackDuration
146146
return dur < 30
147147
}

bk2ch16p687AVQueuePlayer/ch29p952AVQueuePlayer/Player.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22

3-
import UIKIt
3+
import UIKit
44
import AVFoundation
55
import MediaPlayer
66

bk2ch16p687AVQueuePlayer/ch29p952AVQueuePlayer/ViewController.swift

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,14 @@ class ViewController: UIViewController {
6969
}
7070

7171
@IBAction func doPlayOneSongAVAudioPlayer (sender:AnyObject!) {
72+
self.curplayer?.pause()
7273
let url = self.oneSong()
7374
self.player.playFileAtURL(url)
7475
self.curplayer = self.player.player
7576
}
7677

7778
@IBAction func doPlayOneSongMPMoviePlayerController (sender:AnyObject!) {
79+
self.curplayer?.pause()
7880
let url = self.oneSong()
7981
let mpc = MPMoviePlayerController(contentURL:url)
8082
self.mpc = mpc
@@ -86,13 +88,15 @@ class ViewController: UIViewController {
8688
}
8789

8890
@IBAction func doPlayOneSongAVPlayer (sender:AnyObject!) {
91+
self.curplayer?.pause()
8992
let url = self.oneSong()
9093
self.avplayer = AVPlayer(URL:url)
9194
self.avplayer.play()
9295
self.curplayer = self.avplayer
9396
}
9497

9598
@IBAction func doPlayOneSongAVKit(sender: AnyObject) {
99+
self.curplayer?.pause()
96100
let url = self.oneSong()
97101
let p = AVPlayer(URL:url)
98102
let vc = AVPlayerViewController()
@@ -110,17 +114,19 @@ class ViewController: UIViewController {
110114
self.view.addSubview(vc.view)
111115
vc.didMoveToParentViewController(self)
112116
p.play()
117+
self.curplayer = p
113118
}
114119

115120
@IBAction func doPlayShortSongs (sender:AnyObject!) {
121+
self.curplayer?.pause()
116122
let query = MPMediaQuery.songsQuery()
117123
// always need to filter out songs that aren't present
118124
let isPresent = MPMediaPropertyPredicate(value:false,
119125
forProperty:MPMediaItemPropertyIsCloudItem,
120126
comparisonType:.EqualTo)
121127
query.addFilterPredicate(isPresent)
122128

123-
let shorties = (query.items as [MPMediaItem]).filter {
129+
let shorties = (query.items as! [MPMediaItem]).filter {
124130
let dur = $0.playbackDuration
125131
return dur < 30
126132
}
@@ -132,7 +138,7 @@ class ViewController: UIViewController {
132138

133139
self.assets = shorties.map {
134140
let url = $0.assetURL
135-
let asset = AVAsset.assetWithURL(url) as AVAsset
141+
let asset = AVAsset.assetWithURL(url) as! AVAsset
136142
return AVPlayerItem(
137143
asset: asset, automaticallyLoadedAssetKeys: ["duration"])
138144
// duration needed later; this way, queue player will load it for us up front
@@ -174,7 +180,7 @@ class ViewController: UIViewController {
174180
arr = AVMetadataItem.metadataItemsFromArray(arr,
175181
withKey:AVMetadataCommonKeyTitle,
176182
keySpace:AVMetadataKeySpaceCommon)
177-
let met = arr[0] as AVMetadataItem
183+
let met = arr[0] as! AVMetadataItem
178184
met.loadValuesAsynchronouslyForKeys(["value"]) {
179185
// should always check for successful load of value
180186
if met.statusOfValueForKey("value", error: nil) == .Loaded {
@@ -193,7 +199,7 @@ class ViewController: UIViewController {
193199
return
194200
}
195201
let newItem = self.assets.removeAtIndex(0)
196-
self.qp.insertItem(newItem, afterItem:self.qp.items().last as AVPlayerItem)
202+
self.qp.insertItem(newItem, afterItem:self.qp.items().last as! AVPlayerItem)
197203

198204
self.timer?.fire()
199205
}

0 commit comments

Comments
 (0)