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

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

新規登録して質問してみよう
ただいま回答率
85.37%
.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

リソース

効果的な演算のために必要となる、メモリ・ディスク容量・CPUの性能や環境のこと。

Q&A

解決済

1回答

237閲覧

リソースに追加した音源データを再生させたいが参照できず、再生出来ない。

mysknj

総合スコア2

.NET

.NETとは、主に.NET Frameworkと呼ばれるアプリケーションまたは開発環境を指します。CLR(共通言語ランタイム)を搭載し、入力された言語をCIL(共通中間言語)に変換・実行することが可能です。そのため、C#やPythonなど複数の言語を用いることができます。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

リソース

効果的な演算のために必要となる、メモリ・ディスク容量・CPUの性能や環境のこと。

0グッド

2クリップ

投稿2024/10/27 17:00

編集2024/10/27 17:41

実現したいこと

プログラミング初心者です。
visualstudioでC#の勉強をしており、簡易的なアプリを作ってみようとしていますが
resourceに組み込んだmp3データを参照してNAudioで音源をループ再生させたいのですが
なぜかresourceを参照しようとするとエラーが発生します。

発生している問題・分からないこと

resourceのmp3を参照しようとすると、以下のエラーで実行できません。

エラーメッセージ

error

1System.MissingMethodException: 'Constructor on type 'System.Byte[]' not found.'

該当のソースコード

C#

1 private void Form1_Load(object sender, EventArgs e) 2 { 3 byte[] buffer = (byte[])Properties.Resources.ResourceManager.GetObject("データ名");←ここでエラー 4    ~

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

ググって出てきた下記のような色んなコードを試してみましたが、同じくresourceから参照しようとすると同じエラーが発生します。

▼参照元URL
https://dobon.net/vb/dotnet/programing/playembeddedwave.html
https://qiita.com/progrommer/items/9042b666e7ca039fc0d4

もしかしたらresourceの追加方法が違うのか、追加後に何かしらの処理が必要なのでしょうか?
resourceの追加に関しては
①リソースエクスプローラーを開く
②「リソースの作成」から「type」を「audio」に設定
③「既存のファイルを追加」から該当の音声ファイルを追加
でリソースに組み込んでます。

どなたかご教示お願いいたします。

補足

環境:visualstudio2022
言語:C#
フレームワーク:Windowsフォーム(.NET8.0)

▼インストール済のNuGet 
・KeyboardHookManager ver1.2.1
・MathNet.Numerics ver5.0.0
・NAudio ver2.2.1
・OxyPlot.Core ver2.2.0
・OxyPlot.WindowsForms ver2.2.0
・OxyPlot.Wpf ver2.2.0

※該当のresourceはmp3
フリー音源の再配布にならないようにデータは組み込んで使用したいです。

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

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

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

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

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

juner

2024/10/28 00:11 編集

関連した issues として下記が上がっていますが、見られましたでしょうか? https://github.com/dotnet/project-system/issues/9526 プレビュー版では修正を試みている様ですが、製品版ではまだリリースされていない様に見えます。(もしかしたら xml の修正でどうにかできるかもしれません。
KOZ6.0

2024/10/28 01:24 編集

ちょっとやってみましたが、Visual Studio 17.11.4 であれば問題なく参照できました。 プロジェクトの Properties フォルダの下に、Resources.Designer.cs があると思いますが、どんなコードが記述されていますか?
mysknj

2024/10/28 02:16

コメントありがとうございます。 ▼junerさん そちらのissueは初めて見ました >もしかしたら xml の修正でどうにかできるかもしれません。 こちらで言われている内容をやってみればいけるかもということでしょうか? https://github.com/dotnet/project-system/issues/9526#issuecomment-2310777973 ▼KOZ6.0さん >Resources.Designer.cs があると思いますが、どんなコードが記述されていますか? ココでしょうか? internal static byte[] iwashiro_may_be_the_last_of_last { get { object obj = ResourceManager.GetObject("iwashiro_may_be_the_last_of_last", resourceCulture); return ((byte[])(obj)); } } こちら、コードでリソースを参照しているはずですがなぜか 「0個の参照」となっております。 また、追記ですが本文の該当のソースコードに記載しているコード部分を確認したところ、緑の下線(波線)が表示されていて、カーソルを合わせると以下の文が表示されます。 ・CS8600:NullリテラルまたはNullの可能性がある値をNull非許容型に変換しています。 ・CS8601:Null参照代入の可能性があります。
KOZ6.0

2024/10/28 02:27 編集

データ名("iwashiro_may_be_the_last_of_last")が間違っていないなら Visual Studio のバグの可能性が高いですね。 バージョンを確認して古いようならアップデートし、リソースを削除して作り直してみてください。
KOZ6.0

2024/10/28 02:32 編集

>「0個の参照」となっております。 Properties.Resources.iwashiro_may_be_the_last_of_last を使わず、ResourceManager.GetObject ~で参照していればそうなります。
mysknj

2024/10/28 03:22

KOZ6.0さん おっしゃられた通りバージョンをアップデートしてリソースを作り直したら 成功しました!勝手に最新のバージョンだと思ってました。すいません。 ご回答ありがとうございました!
mysknj

2024/10/28 03:24

お二人ともありがとうございました。 KOZ6.0さん ベストアンサーに選びたいので同じ内容を回答欄に投稿いただけますでしょうか?
guest

回答1

0

ベストアンサー

ちょっとやってみましたが、Visual Studio 17.11.4 であれば問題なく参照できました。
データ名("iwashiro_may_be_the_last_of_last")が間違っていないなら Visual Studio のバグの可能性が高いですね。
バージョンを確認して古いようならアップデートし、リソースを削除して作り直してみてください。

投稿2024/10/28 03:38

KOZ6.0

総合スコア2696

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

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

mysknj

2024/10/28 05:02

ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問