• Voiceroid Talk Plus Ver.8.1.0.2

    2018-09-19 18:00399114
    読みちゃんプラグイン Voiceroid Talk Plus Ver.8.1.0.2

    棒読みちゃんと連携でVOICEROIDが読み上げる!
    このプラグインは、VOICEROIDシリーズの購入が必要です。
    VOICEROID2(全話者)、VOICEROID+ EX版(全話者)、VOICEROID+(東北ずん子、結月ゆかり、民安ともえ、鷹の爪 吉田くん)、VOICEROID(月読アイ、月読ショウタ)、音街ウナTalk Ex、ギャラ子Talk、かんたん! AITalk 3、かんたん! AITalk 3 関西風にコメントを読ませます。



    インストール
    • 右上部にあるDownloadボタンより本体をダウンロードしてください。
    • VoiceroidTalkPlus.zipを解凍し、Plugin_VoiceroidTalkPlus.dllとVoiceroidTalkPlusReceiver.exeを棒読みちゃんフォルダへコピーします。
    • 棒読みちゃんのプラグイン設定でチェックを付けて有効にしてください。
    • 棒読みちゃんメイン画面の上に青いVRボタンが出ます。ボタンを押して、設定画面を開いてください。
    • 棒読みちゃんの 辞書登録-タグ-単純置換 および 正規表現 に登録されている単語(配信者機能)は、普通の棒読みちゃんが読み上げます。
    • Ver8.1.0.0より以前のバージョンをご利用中の場合は、設定が一度リセットされます。
    • VOICEROIDを管理者権限で起動している場合は、棒読みちゃんも管理者権限で起動して下さい。
    • 各アプリは終了時に設定をファイルへ書き出しているので、VOICEROID2と棒読みちゃんを起動したままPCをシャットダウンすると状態が保存されなくなります。


    VOICEROID2は別売りです。
    Amazon VOICEROID2 琴葉 茜・葵 [ガイドブック付き] [DL版]
    Amazon VOICEROID2 結月ゆかり [ガイドブック付き] [DL版]
    Amazon VOICEROID2 紲星あかり [DL版] 
    Amazon VOICEROID2 桜乃そら [DL版]

    VOICEROID2


    使い方
    • プリセットを読み込むボタンを押してください。コマンドは利用したいものだけ追記してください。
    • 話者を導入した直後やプリセットを変更した直後はVOICEROID2を一度再起動するとプリセットを読み込むようになります。
    • 常に読み上げる場合は、優先順位が最上部にある話者が読み上げます。行選択すると入れ替えできます。
    • 常に読み上げる場合でもコマンドは有効です。
    • 文章の先頭にコマンドがある場合、該当する話者が読み上げます。
    • ランダムに読み上げる場合はリスト内全てが対象です。ランダム読み上げでもコマンドは有効です。
    • ランダムの話者が2人以上ある場合に、棒読みちゃんを追加で含めることができます。(全部で3人以上)
    • ファイルパスはインストール先のフォルダにある「VoiceroidEditor.exe」を指定してください。
    • 他のVOICEROIDシリーズ、同一エンジン搭載のアプリ(かんたん!AITalk 3を除く)と併用できます。
    • みくみくまうす連携は、プリセット名に同一の名前が含まれている場合に連携できます。


    ※VOICEROID/VOICEROID+/VOICEROID+ EX シリーズは別売りです。
    Amazon VOICEROID+ 東北きりたん EX [DL版]
    Amazon VOICEROID+ 京町セイカ EX
    [DL版]
    Amazon VOICEROID+ 水奈瀬コウ EX
    [DL版]
    Amazon VOICEROID+ 琴葉 茜・葵 [DL版]
    Amazon VOICEROID+ 東北ずん子 EX
    [DL版][UP版]
    Amazon VOICEROID+ 結月ゆかり EX [DL版][UP版]
    Amazon VOICEROID+ 民安ともえ EX [DL版][UP版]
    Amazon VOICEROID+ 鷹の爪 吉田くん EX [DL版][UP版]
    Amazon VOICEROID+ 月読アイ EX [DL版][UP版]
    Amazon VOICEROID+ 月読ショウタ EX [DL版][UP版]



    VOICEROID / VOICEROID+ / VOICEROID EX


    使い方
    • 常に読み上げにチェックを入れるとラジオボタンでVOICEROIDを選択出来るようになります。
    • EXシリーズを利用の場合は該当の項目にチェックを入れて下さい。
    • 文章の先頭にコマンドがある場合、該当する話者が読み上げます。
    • ランダムに読み上げる場合は、起動しているVOICEROIDのチェックを2つ以上入れて下さい。
    • VOICEROID2に同一の話者が存在する場合、ランダムに含めると読み上げが停止する事があります。
    • Intervalの値をVOICEROID/VOICEROID+の種類によって変更して下さい。※1
    • ファイルパス指定で棒読みちゃん起動時に一緒に起動させることが出来ます。
    • 月読アイとショウタは、多重起動することで同時に利用出来ます。
    ※1 Interval値について。(EX版は設定無し)
     この値を大きくすると、次の行を読みあげるまでの時間を調整出来ます。
     読み上げが尻切れになる場合は大きくしてみてください。
     おおよその値は結月ゆかり:280、民安ともえ:280、吉田くん:280、月読アイ:320、月読ショウタ:320
     アイとショウタは読み上げスピードが遅いので、320あたりで微調整して下さい。

    導入方法の動画 プラグイン導入の流れを動画にしました。





    同一エンジン搭載のアプリ

    • かんたん! AITalk 3のコマンドは 話者名) です。あんず) かほ) ななこ) のぞみ) せいじ) みやび) やまと)
    • かんたん!AITalk 3のランダム機能はVOICEROIDと併用出来ません。

    ■音街ウナTalk Ex
     音街ウナTalk Exは、声優「田中あいみ」の声をベースに株式会社インターネットが制作した文章読み上げソフトウェア。音声の合成エンジンには、株式会社エーアイが開発した音声合成エンジンAITalkを使用。(VOICEROIDと同じエンジン) ※動作確認済み

    音街ウナTalk Ex [DL版]


    ■ YAMAHA ヤマハ ボーカロイド VOCALOID3 Library ギャラ子 NEO 特典 ギャラ子Talk
     ギャラ子Talkとは、柴咲コウさんの声をもとに開発した「VOCALOID3」対応の女性歌声ライブラリ『VOCALOID3 Library ギャラ子 NEO』に、株式会社エーアイの音声合成エンジンAITalkRが採用されたナレーション作成ソフト「ギャラ子Talk」が特典として収録されています。 
    動作確認済み

    YAMAHA ヤマハ ボーカロイド VOCALOID3 Library ギャラ子 NEO


    ■ かんたん! AITalk 3、かんたん! AITalk 3 関西風
     かんたん! AITalk 3とは、株式会社エーアイが発売している音声読み上げソフトです。
    バラエティー豊かな話者から好きな話者を選ぶことができるパッケージです。 ※動作確認済み

    かんたん! AITalk 3 -5話者パック- [DL版]、関西風 2話者パック [DL版]


    みくみくまうす連携


     VOICEROIDのMMDモデルを表示し、外部配信ツールやデスクトップ上へ画面合成が可能で、コメントによる仕草や口パクしちゃう無料のアプリ。みくみくまうす Ver2.1.0 に対応しました。




    更新情報
     2018/09/19 (8.1.0.2)
      OSの地域設定で日付・時刻表示が日本語以外の時にエラーが出る不具合を修正しました。
     2018/05/07 (8.1.0.1)
      棒読みちゃん側でキューが蓄積した時、2行目を読み上げないことがある不具合を修正しました。
      VOICEROID2の設定に選択行削除ボタンを追加しました。
     2017/06/29 (8.1.0.0)
      引き継げない設定がある為、すべての設定が初期化されます。
     
    2017/06/27 (8.0.2.1)
      VOICEROID2側の読み上げ中に停止してしまう対策をしました。
      棒読みちゃんをランダムに含める機能を追加しました。
      文字コードの変換処理を追加しました。
      読み上げ途中にVOICEROID2を終了させても固まらなくしました。
      みくみくまうす連携に関する問題を修正しました。
      全てのVOICEROIDと併用できるようにしました。(かんたん!AITalk 3を除く)
      プリセットを読み込むボタンを追加しました。
      コマンドを入力しなくても動作するようにしました。
      バックグラウンドで動作するようにしました。
      クリップボードを利用しない対策、尻切れ対策など修正しました。
      起動直後にウィンドウフォーカスがとれない不具合を修正しました。
     2017/06/12 (8.0.0.0)
      VOICEROID2に暫定対応しました。

     ※以降はダウンロードした圧縮ファイル内の Readme.txt を参照してください。


    動作環境
     Windows 10 推奨
     棒読みちゃん
     VOICEROIDシリーズなどのいずれかをインストール済み


    ※無料で違う音声合成をお探しなら、Voicetext Talk をお試し下さい。
    ◇ 免責 ◇
     本ソフトウェアによって不測の不利益を被った場合でも一切の責任を負いかねますので予めご了承ください。
    ◇ 著作権・再頒布など ◇ 本ソフトウェアの著作権は、Wangdora が所有します。ソフトウェアの再配布を禁止します。
    ◇ お世話になった方々 ◇ 棒読みちゃん製作者 みちあき様
    ◇ 連絡先 ◇ Twitter : http://twitter.com/Wangdora ご利用の際には一報頂けると幸いです。



    カンパのお願い
     Amazonでのお買い物の際は、下記リンクをご利用して頂くと、アソシエイトプログラムによりお買い上げ金額の数%(商品により変動)が私に届きます。Amazonアソシエイトプログラム

     時々「お金を取ればいいのに」とのご意見を頂きます。基本的には無料でご利用頂けますが、気に入ってくださった方は、ご支援いただければ幸いです。アマゾンギフト券を wangdora@outlook.jp 宛にお送り下さい。Amazonギフト券- Eメールタイプ - Amazonボックス

  • 広告
  • ニコ生新配信APIの実装 (C#)

    2018-09-15 07:004

    共通の事項

    ライブラリを追加

     Web APIのクライアントに必要なライブラリは基本的にASP.NET MVC 4に含まれていますが、依存関係もそれなりにあるので、NuGetを使用した方が楽です。
     GUIを使用する場合には下図のように”Microsoft ASP.NET Web API Client Libraries”を選択し、インストールします。

    ※.Net Framework 4.5以上必須




    usingの追加

    using System.Net.Http;
    using System.Net.Http.Formatting;
    using System.Runtime.Serialization;


    ※以降は全て非同期(asyncが必要)で処理です。
    User-Agentはアプリ名とバージョンを記載すること。
    データの送受信は全てjson形式。
    仕様変更される場合があります。

    例外処理などは省略してあります。

    運営コメント

    データクラスの追加

    [DataContract]
    public class PostComment
    {
    [DataMember(Name = "text")]
    public string text { get; set; }
    [DataMember(Name = "isPermanent")]
    public bool isPermanent { get; set; }
    [DataMember(Name = "color")]
    public string color { get; set; }
    [DataMember(Name = "userName")]
    public string userName { get; set; }
    }

    HTTP リクエスト (PutAsJsonAsync)

    using (HttpClientHandler handler = new HttpClientHandler())
    using (HttpClient client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(10) })
    {
    client.DefaultRequestHeaders.Add("User-Agent", "クライアント名");
    handler.CookieContainer = container;

    PostComment _PostComment = new PostComment
    {
    text = "コメント",
    isPermanent = false,
    color = "",
    userName = ""
    };

    var response = await client.PutAsJsonAsync<PostComment>("http://live2.nicovideo.jp/watch/" + LiveID + "/operator_comment", _PostComment).ConfigureAwait(false);

    // 200 OKの場合は正常に送信など後はお好きなように。
    if (response.StatusCode == HttpStatusCode.OK)
    return true;
    }

    User-Agent : クライアントを判別できるものを付けてください。
    container
    : CookieContainer
    LiveID : lvを含む放送番号

    text : コメントテキスト
    isPermanent : /permでずっと表示するコメにするかどうか(true/false)
    color : コメントの色。red,blue,greenなど。省略可能。
    userName : コテハン。省略可能。

    基本的な情報は下記を参考。
    大百科の運コメAPI

    /cls

    await client.DeleteAsync("http://live2.nicovideo.jp/watch/" + LiveID + "/operator_comment").ConfigureAwait(false);


    配信開始・停止

    データクラスの追加

    [DataContract]
    public class LiveState
    {
    [DataMember(Name = "state")]
    public string state { get; set; }
    }

    HTTP リクエスト (PutAsJsonAsync)

    using (HttpClientHandler handler = new HttpClientHandler())
    using (HttpClient client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(10) })
    {
    client.DefaultRequestHeaders.Add("User-Agent", "クライアント名");
    handler.CookieContainer = container;

    LiveState _LiveState = new LiveState
    {
    state = "on_air"
    };

    var response = await client.PutAsJsonAsync<LiveState>("http://live2.nicovideo.jp/watch/" + LiveID + "/segment", _LiveState).ConfigureAwait(false);

    // responseにはstart_timeとend_timeが飛んで来るので後はお好きなように。
    string json = await response.Content.ReadAsStringAsync();

    // 409 Conflictの場合はすでに配信開始済み。
    if (response.StatusCode == HttpStatusCode.Conflict)
    return true;

    // 200 OKの場合は正常に開始。
    if (response.StatusCode == HttpStatusCode.OK)
    return true;

    // エラーの時は数秒待機してから再試行してください。
    return false;
    }

    配信停止はstateを変えるだけ。
    state ="end"

    延長リスト
    "http://live2.nicovideo.jp/watch/" + LiveID + "/extension";
    ここを叩くと、json形式で延長可能な一覧が取れる。

    延長

    データクラスの追加

    [DataContract]
    public class LiveExtension
    {
    [DataMember(Name = "minutes")]
    public int minutes { get; set; }
    }

    HTTP リクエスト (PostAsJsonAsync)

    using (HttpClientHandler handler = new HttpClientHandler())
    using (HttpClient client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(10) })
    {
    client.DefaultRequestHeaders.Add("User-Agent", "クライアント名");
    handler.CookieContainer = container;

    LiveExtension _LiveExtension = new LiveExtension
    {
    minutes = 30 //延長可能な一覧から取得した時間をminutesに指定する。
    };

    var response = await client.PostAsJsonAsync<LiveExtension>("http://live2.nicovideo.jp/watch/" + LiveID + "/extension", _LiveExtension).ConfigureAwait(false);

    // responseにはstart_timeとend_timeが飛んで来るので後はお好きなように。
    string json = await response.Content.ReadAsStringAsync();
    }


    バックステージパス ※配信主でも送信可能

    データクラスの追加

    [DataContract]
    public class PostBspComment
    {
    [DataMember(Name = "text")]
    public string text { get; set; }
    [DataMember(Name = "userName")]
    public string userName { get; set; }
    [DataMember(Name = "color")]
    public string color { get; set; }
    }

    HTTP リスエスト (PostAsJsonAsync)

    using (HttpClientHandler handler = new HttpClientHandler())
    using (HttpClient client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(10) })
    {
    client.DefaultRequestHeaders.Add("User-Agent", "クライアント名");
    handler.CookieContainer = container;

    PostBspComment _PostBspComment = new PostBspComment
    {
    text = "コメント",
    userName = "Wangdora",
    color = "red"
    };

    var response = await client.PostAsJsonAsync<PostBspComment>("http://live2.nicovideo.jp/watch/" + LiveID + "/bsp_comment", _PostBspComment).ConfigureAwait(false);

    // 200 OKの場合は正常に送信など後はお好きなように。
    if (response.StatusCode == HttpStatusCode.OK)
    return true;
    }


    アンケート

    データクラスの追加

    [DataContract]
    public class EnqueteContents
    {
    [DataMember(Name = "question")]
    public string Question { get; set; }
    [DataMember(Name = "items")]
    public List<string> Items { get; set; }
    }


    アンケート開始

    HTTPリクエスト (PostAsJsonAsync)

    using (HttpClientHandler handler = new HttpClientHandler())
    using (HttpClient client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(10) })
    {

    client.DefaultRequestHeaders.Add("User-Agent", "クライアント名");
    handler.CookieContainer = container;

    List<string> _Reply = new List<string>();
    _Reply.Add(Q1);
    _Reply.Add(Q2);
    _Reply.Add(Q3);
    _Reply.Add(Q4);
    _Reply.Add(Q5);
    _Reply.Add(Q6);
    _Reply.Add(Q7);
    _Reply.Add(Q8);
    _Reply.Add(Q9);

    EnqueteContents _EnqueteContents = new EnqueteContents
    {
    Question = question,
    Items = _Reply
    };

    var response = await client.PostAsJsonAsync<EnqueteContents>("http://live2.nicovideo.jp/unama/watch/" + LiveID + "/enquete", _EnqueteContents).ConfigureAwait(false);
    }

    question : 質問
    Q1~Q9 : 選択肢
    questionとQ1、Q2は必須です。

    上記は省略してありますが、選択肢が無い場合はAddしないで下さい。↓

    if (!string.IsNullOrEmpty(Q1))
    _Reply.Add(Q1);


    アンケート結果表示

    HTTPリクエスト (PostAsync)

    using (HttpClientHandler handler = new HttpClientHandler())
    using (HttpClient client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(10) })
    {
    client.DefaultRequestHeaders.Add("User-Agent", "クライアント名");
    handler.CookieContainer = container;
    var response = await client.PostAsync("http://live2.nicovideo.jp/unama/watch/" + LiveID + "/enquete/result", null).ConfigureAwait(false);
    }


    アンケート結果消去

    HTTPリクエスト (DeleteAsync)

    using (HttpClientHandler handler = new HttpClientHandler())
    using (HttpClient client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(10) })
    {
    client.DefaultRequestHeaders.Add("User-Agent", "クライアント名");
    handler.CookieContainer = container;
    var response = await client.DeleteAsync("http://live2.nicovideo.jp/unama/watch/" + LiveID + "/enquete").ConfigureAwait(false);
    }


    番組情報取得

    "http://live2.nicovideo.jp/watch/" + LiveID + "/programinfo"

    全ての部屋情報が取得できる。返ってきたJSONのid要素はチャンネル放送だと追い出し機能の仕様で変動する(id番号と部屋番号は一致しない)ので注意。

    来場者数、コメント数を取得
    "http://live2.nicovideo.jp/watch/" + LiveID + "/statistics"

    動画引用

    データクラスの追加

    [DataContract]
    public class MixingRoot
    {
    [DataMember(Name = "mixing")]
    public List<Contents> Mixing { get; set; }
    }

    [DataContract]
    public class Contents
    {
    [DataMember(Name = "content")]
    public string Content { get; set; }
    [DataMember(Name = "audio")]
    public float Audio { get; set; }
    [DataMember(Name = "display")]
    public string Display { get; set; }
    }

    HTTP リクエスト (PutAsJsonAsync)

    using (HttpClientHandler handler = new HttpClientHandler())
    using (HttpClient client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(10) })
    {
    client.DefaultRequestHeaders.Add("User-Agent", "クライアント名");
    handler.CookieContainer = container;

    // 放送画面の設定
    var _Contents1 = new Contents
    {
    Content = LiveID, // 自分の放送ID (lv)
    Audio = (float)1.0, // 音量 (0.0~1.0)
    Display = "main"
    };

    // 動画の設定
    var _Contents2 = new Contents
    {
    Content = "sm9", // 動画番号 (sm)
    Audio = (float)1.0, //音量 (0.0~1.0)
    Display = "sub"
    };

    MixingRoot _MixingRoot;
    if (Start)
    {
    // 動画引用開始
    _MixingRoot = new MixingRoot()
    {
    Mixing = new List<Contents>() { _Contents1, _Contents2 }
    };
    }
    else
    {
    // 動画引用停止
    _MixingRoot = new MixingRoot()
    {
    Mixing = new List<Contents>() { _Contents1 }
    };
    }

    var response = await client.PutAsJsonAsync<MixingRoot>(UrlWatch2 + LiveID + "/broadcast/mixing", _MixingRoot).ConfigureAwait(false);

    // 404
    if (response.StatusCode == HttpStatusCode.NotFound)
    return "番組が見つかりませんでした。";

    // 400
    if (response.StatusCode == HttpStatusCode.BadRequest)
    return "引用できないコンテンツです。";

    // 401
    if (response.StatusCode == HttpStatusCode.Unauthorized)
    return "再ログインしてください。";

    // 500
    if (response.StatusCode == HttpStatusCode.InternalServerError)
    return "動画引用に失敗しました。";

    return Status;
    }


    Start : 動画引用開始か停止のフラグ
    Status : stringの戻り値("動画を開始します。"など)
    Display : "main"、"sub"、"none" 画面をどこに表示するか。noneは音声のみ
    また、音量は配信画面と引用動画のそれぞれに指定できる。
    パラメータ無しで同アドレスを叩くと、現在の状態が取得できる。


    コテハン・サムネイル取得

    "http://api.ce.nicovideo.jp/api/v1/user.info?user_id=" + UserID

    ユーザーIDからコテハンとサムネイル画像へのパスを取得できる。連打制限ありになった。
    コミュニティページからHTMLパースして取り出す方が制限なくて使える。

    ここには書いてないけど、コメ鯖のWebSocketがSSL化されたらしい。
    ※覚書なのでご自由に。APIが実装され次第追記。
  • Android版「Location Post」

    2018-09-02 00:00438
      Android版 Location Post Ver4.2.1

      Android端末に搭載されているGPS機能で
    ドラココなう!配信たん2と連携する事が出来ます。ドラココなう!への位置情報を送信します。配信たん2との連携では、座標を直接送信する事によりGPSを利用した全ての機能を利用出来るようになり、コメント表示や遠隔操作などの機能も利用が可能になります。

    豆ライブ改α2PITA Core Boxでも利用出来るようになりました。
    ※Android4.2以前のOSではマップ表示が出来なくなりました。

    インストール・アップデート方法
     右上のDownloadボタンより、apkファイル をダウンロードして下さい。
     PCなどの場合はAndroid端末へ転送して下さい。Android端末から直接ダウンロードした場合はDownloadフォルダにコピーされます。ファイラーなどを利用して、apkファイルをインストールして下さい。(ブラウザから直接起動や、通知領域のダウンロードをタップする事などでもインストールできます。)
    ※Android設定のセキュリティで、「提供元不明のアプリのインストールを許可する」にチェックを入れて下さい。



     インストール時に以下のような権限を要求されます。
     ・ 現在地情報:GPSロケーションの機能を利用します。
     ・ ストレージ : GPSログの出力先に利用します。
     ・ ネットワーク通信:インターネット経由で座標を送受信します。


     インストールが終わったら起動して下さい。


     アップデートは起動時に表示されるボタンから行ってください。

    使い方
    設定メニュー



    アカウント登録


     申請内容を入力してください。
    • ドラココID : 新規で利用するドラココなう!アカウントになります。自由に設定出来ますが、今ココなう!を利用していた方は、できるだけ今ココIDをそのまま利用してください。
    • 表示名 : ドラココなう!の地図上に表示される名前です。10文字以内。
    • ニコ生ID : ニコ生のマイページで確認して、ID番号を入力してください。また、ニコ生のIDが無い場合はTwitterのIDが利用できます。
     「新規登録申請する」ボタンを押すと、登録済みIDのチェックが入ります。すでに登録されているIDは申請できません。申請が可能であれば、確認ウィンドウが表示されます。

     IDに利用可能な文字 ドラココID : 0~9 a~z A~Z . _ - ニコ生ID : 0~9 a~z A~Z _ 表示名 : , & = 以外
     半角スペースの利用は全面的に禁止になりました。一部の企業名及びテストという名前は禁止になりました。

    ※ドラココIDとニコ生IDは端末毎に全て同一IDで新規申請を行ってください。
    ※1年間アクティベーションされない場合、アカウントは自動削除されます。
     アカウント削除された端末は、削除申請すると端末がリセットされます。


    表示設定

    • 起動時サービス開始 / アプリ起動時にサービスを自動で開始します。※要アクティベーション済み
    • メイン画面すっ飛ばし / 起動時に配信たん2連携を表示します。
    • 自動停止 (非送信地帯) / 非送信地帯に入って一定時間が過ぎるとサービスを自動停止します。(0分で無効)

    地図のカスタマイズ
     地図表示内部でカスタマイズする事が出来ます。


    地図の表示

     「地図を表示」ボタンを押した時、座標を取得している場合は、その場所を拡大して表示されます。サービスが停止していたり、開始していても座標が取得されていない場合は全国マップになります。




    ログ出力
     SDカードのLocationPostフォルダへKML形式、またはCSV形式のGPSログファイルを書き出します。
     ファイル名はGPSを開始した時刻で、20秒毎にため込んだログを追記出力します。
     CSV形式のデータは、GCPEditerなどを使ってGPX形式やKML形式へコンバート出来ます。
     データ構成は、経度,緯度,高度,速度,方角。1秒毎の記録で、速度はkm/h、方角は360度を数値化したもの。


    サービス開始


     サービス開始ボタンを押すと、ドラココなう!、Location Postサーバーへ座標が送信されます。また、初回開始時に取得された住所が投稿されます。投稿時はトーストでお知らせされ、地図内部で投稿内容を閲覧できます。

    非送信地帯一覧


    非送信地帯の設定方法
     登録した座標の半径内に進入すると、座標・ツイート送信を自動で停止する機能です。設定するには、サービスを開始した状態(経緯度を必ず取得している事)でその場所へ行き、メイン画面の+ボタンを長押しする事で座標が登録されます。
     リストを選択すると削除することが出来ます。
     リストを長押しすると非送信地帯を地図で確認する事が出来ます。
    ※ドラココなう!にチェックが入っていると矢印が上がるので、外してから現地へ赴いて下さい。

    地図から追加する
     
     予め任意の位置を指定して非送信地帯を設定することが出来ます。
     「地図から追加」ボタンを押すと、地図が表示され、マーカーをドラッグまたは地図をタップする事で座標を入力することが出来ます。
     「非送信地帯に追加」ボタンを押してから戻るボタンで閉じると、LocationPostへ座標が送信されます。


    非送信地帯半径
     非送信地帯からの半径を設定します。単位はメートル。初期値は500m。最大値999m。


    配信たん2でLocation Postの利用方法 ※ドラココなう!についてはこちら
     配信たん2の設定画面-周辺アプリ-GPS設定を開きます。


     スマートフォンを選択します。ドラココなう!申請フォームより、新規登録申請をして下さい。この時、ドラココIDとニコ生IDはスマートフォンのIDと同一のものをご利用下さい。
     中央付近にある「端末リンク設定」を押して、スマートフォンのLocationPostのメイン画面右下にある12桁の端末IDを間違えないように選択して下さい。配信たん2メイン画面左下にあるメニューでGPS開始すれば、座標が届くようになります。配信たん2のGPSを利用するほぼ全ての機能が利用可能になります。
     
    また。こちらを参考に。配信たん2とドラココの連携について /
    ar989083

    Android8.0 Oreoについて
     ドラココに限らず、GPSを利用するすべてのアプリケーションは、バックグラウンドにまわると1時間に数回しかGPS座標を拾う事が出来ません。当アプリを利用する場合は常にフォアグラウンド(最前面)にし、電源を接続した上で後述のスリープしない設定でご利用下さい。OS側の仕様の為、アプリ側ではどうにもなりません。

    GPSの補足に時間がかかる場合
     MVNOをDOCOMO端末で利用している場合(Wifi含む)、GPSの補足に時間がかかる(1~5分程)事があります。これは、A-GPS(プロバイダーや基地局による補足機能)のサーバーがSPモードを利用するので、MVNOではA-GPSを補足出来ない為に起きます。この方式であれば、確実に衛星GPSを補足する事になり、動作的にはこちらを優先させたいので、A-GPSに関する修正は致しません。(Google Mapsだとすぐに補足するのは、マップアプリがgoogleのsuplサーバーを利用しているものと思われます。)

     また、SPモードを利用しないようにするアプリ(保障は出来ませんが、動作報告あり。)などもありますので、詳細は下記のサイトを参考にして下さい。

     ドコモなXperiaでGPSの測位が遅くなる問題の解決方法

    Android6.0 Marshmallow以降のDozeモードについて
     バッテリーを長持ちさせるDozeモードが搭載されました。初期値で有効になっている為、この機能によってGPSの取得が停止されるかもしれません。Android6.0 Marshmallow以降の端末をご利用の方は、下記のアドレスを参考に、設定の「最適化の無視」をLocationPostでオンにして下さい。
     Dozeモードの使い方

    Android5.0 Lollipop以降の省電力モードについて
     バッテリーセーバーという省電力モードが搭載されました。こちらも初期値で有効になっている為、端末のパフォーマンスが抑えられ、位置情報サービスが制限されることがあります。こちらの機能をOFFにする事で衛星GPSの取得が停止される事がなくなるかもしれません。また、位置情報モードがバッテリー節約になっていると、衛星GPSが拾えなくなりますので、こちらの設定も確認してください。
     省電力モードと位置情報モードの設定方法

    充電中に自動でスリープしない設定にする
     充電中に限りディスプレイが勝手にオフにならなくなります。
     Android のディスプレイが勝手に消えないようにする方法

    動作環境
    Android 4.4 以上推奨
    インターネット通信

    Webサービス by Yahoo! JAPAN


    免責事項及び利用規約はドラココなう!に準じます。


    カンパのお願い ~ドラココなう!運営のご協力をお願いします~
     Amazonでのお買い物の際は、下記リンクをご利用して頂くと、アソシエイトプログラムによりお買い上げ金額の数%(商品により変動)が私に届きます。Amazonアソシエイトプログラム

     時々「お金を取ればいいのに」とのご意見を頂きます。基本的には無料でご利用頂けますが、気に入ってくださった方は、ご支援いただければ幸いです。アマゾンギフト券を wangdora@outlook.jp 宛にお送り下さい。Amazonギフト券- Eメールタイプ - Amazonボックス