SwiftUI split カンマ区切りなどの文字列を区切る場合

SwiftUI split components

Swiftの文字列Split区切り処理にはsplitとcomponentsがある。わたしの認識したこの2つの違いは戻り値がsplitの場合は[Substring]でcomponentsは[String]ということです。componentsを使い文字列を区切った処理するSwiftUIの場合、下記のようなコードです。

struct TComponentsView: View  {
    @State var s1: String = ""
    var body: some View {
        VStack {
            TextField("TextField", text: self.$s1)
            ForEach(s1.components(separatedBy: " "), id: \.self){
                Text("\($0)")
            }
            Spacer()
        }
    }
}

splitの場合下記のコードです。

struct TSplitView: View {
    @State var s1: String = ""
    var body: some View {
        VStack {
            TextField("TextField", text: self.$s1)
            ForEach(s1.split(separator: " "), id: \.self.description){
                Text("\($0.description)")
            }
            Spacer()
        }
    }
}

CPRM対応DVDをiPhoneのカメラロールにコピー

CPRMコピーについて

知り合いなどからHDD DVDレコーダーなどで、テレビ番組などをDVD媒体にコピーして渡される場合などがよくあります。 DVDファイナライズされている場合CPRM形式でDVDです。しかしわたしは、CPRM対応のDVDプレーヤー持ってないしテレビでDVDをみるよりiPhoneなどで移動中に見たほうが時間の節約にもなります。そこで、macOSからCPRMのDVDを動画ファイルに変換してiPhoneのカメラロールに入れる方法をご紹介します。もちろん自分のiPhoneで見るだけで見れば削除します。今回、DVDFabとHandBrakeという2つのアプリを使いました。DVDFabは有料ですが、HandBrakeは無料で利用できます。

MacBookのDVDドライブに、CPRMフォーマットのDVDを入れるとファインダー画面左側は下のようにDVDを認識します。

CPRMフォーマットをDVDが認識
赤枠がCPRMフォーマットのDVDを認識した画面です

ファインダーからDVDを選択し、中身を見るとしたのようなファイル構成です。

CPRMフォーマットDVDをファインダーで参照
CPRMフォーマットDVDをファインダーで参照

DVDの中は、DVD_RTAVフォルダーがあってそのなかに「VR_MANGR.BUP, VR_MANGR.IFO, VR_MOVIE.VRO」の3つのファイルが入っていました。その中で「VR_MOVIE.VRO」という名称のファイルサイズが3GByteなどのいちばん大きなファイルが、動画ファイルです。このVR_MOVIE.VROファイルのままでは動画は見れません。

ここで市販の[DVDFab]というmacOS対応のアプリを使います。

DVDFab起動
DVDFab起動画面

CPRMフォーマットのDVDがドライブに入っている状態でDVDFabを起動すると上のようにすでにDVDが選択されています。画面左下に[save to]と書いている項目があるので[ios]を選び画面右下の[Start]でコピーを開始します。

DVDコピー完了ダイアログ
DVDコピー完了ダイアログ

DVDのコピーが完了すると[Successfully]ダイアログが表示されます。ファインダーの[書類|DVDFab11|Clone]フォルダーに移動すると[DVD_VIDEO_RECORDER.iso]が作成されています。このファイルをクリックします。

完成したisoファイルをクリックする
完成したisoファイルをクリックする

ファインダー左側にisoがマウントされていることが確認できます。その中を見るとDVD_RTAVフォルダがあり、VR_MOVIE.VROファイルも同じように入っています。そのVR_MOVIE.VROをどこかにコピーし、VR_MOVIE.mp4と「名前を変更」します。このままでも「MPlayer OSX Extended」などの動画再生アプリから見れますが「HandBrake」アプリを使ってiPhoneで見れるように変換します。

拡張子VROからMP4に変更確認
拡張子VROからMP4に変更を確認

HandBrakeを起動しVR_MOVIE.mp4ファイルを選択します。

HandBrake画面
HandBrake画面

[Start]ボタンをクリックし変換を待ちます。HandBrake画面右下に書いているフォルダに完成したファイルが保存されます。

完成した動画ファイルをQuickTime Playerで確認できたらAirDropでiPhoneに送信します。送信完了するとiPhoneのカメラロールに入っています。これでCPRMのDVDを、移動中に見ることができました。