質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

2回答

1805閲覧

[Monaca]ミュート状態を保存したい

Norako

総合スコア16

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

1クリップ

投稿2016/02/17 09:37

MonacaでBGM付きのアプリを開発中なのですが、
ミュートボタンを押したらミュートになり、
かつ、その状態を保存して、
次回起動時にもミュート状態から始まるようにしたいと思っています。

問題はどうやって状態を保存するかなのですが
色々ググったりしまして、
localstorageを使うのが良いかと思い、
単純に
localStorage.setItem('mute', true);
もしくは
localStorage.setItem('mute', false);
して、
audio.muted = storage.getItem('mute');
すればいいのでは?と思ったのですが、
駄目でした。
(ミュート状態が保存されていませんでした)

上記の目的の場合、どう記述するべきでしょうか?

またもし、
localstorageを使う以外にもっと簡単な方法があるようであればお教えいただければ幸いです。

どうかご教示のほどよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

あの…ほんとにすいませんm(__)m
ハイブリッド対応するため、
HTML5のaudioタグではなく、
MonacaのMedia APIを使って音を鳴らしていたのですが…、

そもそもMedia APIにmutedというメソッドは無いw(゚o゚)w

ようでして…
stopメソッドを使ったら普通にできました!
(muteとstopではだいぶ違いますが、音がしなくなる事には変わりないので良しとします。)
localstorageでの保存も問題無いです。

私、audioオブジェクトと混同してしまっていました…
お恥ずかしいぃぃぃ(///∇///)

また今回はlocalstorageで出来ましたが、
rihitoさまに教えていただいたsqliteも便利そうですので勉強したいと思います。
どうもお騒がせいたしましたm(__)m

投稿2016/02/18 08:44

Norako

総合スコア16

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

monacaでsqliteを利用したアプリを開発していました。
データを長期間保存というのであれば、sqliteでもいいのかなと思います。

以下サンプル

var database_name = "app_db"; var database_version = "1.0"; var database_displayname = "db_name"; var database_size = 10 * 1024 * 1024; // 10mb db = window.openDatabase(database_name, database_version, database_displayname, database_size); sql = 'CREATE TABLE IF NOT EXISTS [settings](' + '[mute_status] int,' + ');'; // テーブル作成 db.transaction(function(transaction) { transaction.executeSql(sql, [], function(transaction, result) { //成功 }, function(transaction, error) { console.log("error:" + error.message); console.log("sql:" + sql); }); }); // データ取得 db.transaction(function(transaction) { sql = 'SELECT * FROM settings'; transaction.executeSql(sql, [], function(transaction, result) { $scope.mute_status = result.rows.item(0).mute_status; $scope.$apply(); }, function(transaction, error) { console.log("error:" + error.message); console.log("sql:" + sql); }); });

投稿2016/02/18 01:26

rihito

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Norako

2016/02/18 08:45 編集

rihitoさまご回答ありがとうございます。 なるほどそんな手段もあるのですね!sqlite全く解らないので勉強してみます。 ありがとうございます。
Norako

2016/02/18 08:45

すいません。お名前を書き間違えておりましたので修正させていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問